Excel-File mit Datum kopieren
Verfasst: Montag 13. Januar 2020, 14:11
Hallo zusammen 
Ich habe mir eine Excel-Tapete erstellt, die ich gern mit pandas kopieren und als neue Datei (mit eigenem Namen) abspeichern möchte.
https://www.directupload.net/file/d/569 ... 3u_jpg.htm
Ich versuche es so hinzubekommen, daß ein Datum (egal in welche Zelle) automatisch erkannt wird und in der Form strftime('%d.%m.%Y') übernommen wird.
Das was ich versuche, ist, ein Dictionary zu erstellen, welches ich wieder als Excel-File abspeichern kann.
Dabei funktioniert das Datum erkennen und umwandeln schon mal.
Mein bisheriger Code:
Ausgabe:
Probleme tauchen jetzt schon bei der Erstellung des Dictionaries auf,
da ich diese ganzen Zusätze nicht in das Dict übernehmen will, sondern nur das was direkt in den Tabellen (im Bild) vorhanden ist.
Kennt sich da jmd mit aus?
LG Christian

Ich habe mir eine Excel-Tapete erstellt, die ich gern mit pandas kopieren und als neue Datei (mit eigenem Namen) abspeichern möchte.
https://www.directupload.net/file/d/569 ... 3u_jpg.htm
Ich versuche es so hinzubekommen, daß ein Datum (egal in welche Zelle) automatisch erkannt wird und in der Form strftime('%d.%m.%Y') übernommen wird.
Das was ich versuche, ist, ein Dictionary zu erstellen, welches ich wieder als Excel-File abspeichern kann.
Dabei funktioniert das Datum erkennen und umwandeln schon mal.
Mein bisheriger Code:
Code: Alles auswählen
import os
import pandas as pd
input_file = "C:\\Users\\xxx\\Desktop\\DM-Dateiimport\\Testdatei.xlsx"
process_file = "C:\\Users\\xxx\\Desktop\\DM-Dateiimport\\Testdatei - Kopie.xlsx"
if os.path.isfile(process_file):
os.remove(process_file)
def undate(x):
if pd.isnull(x):
return x
try:
return x.strftime('%d.%m.%Y')
except AttributeError:
return x
except Exception:
raise
excel_file = pd.ExcelFile(input_file)
process_dict = {}
for sheet_name in excel_file.sheet_names:
df_frame = pd.DataFrame(pd.read_excel(input_file, sheet_name=sheet_name))
if not df_frame.empty:
# print(sheet_name)
if sheet_name not in process_dict:
process_dict[sheet_name] = {}
for key, value in df_frame.items():
# print(key)
if key not in process_dict[sheet_name]:
process_dict[sheet_name][key] = []
process_dict[sheet_name][key].append(df_frame[key].apply(undate))
print(process_dict)
excel_file.close()
Code: Alles auswählen
{'Tabelle1': {'Name': [0 Ankit
1 Rahul
2 Shaurya
3 03.05.1999
4 Priyanka
Name: Name, dtype: object], 'Age': [0 18
1 19
2 20
3 18
4 7.7.1852
Name: Age, dtype: object], 'Stream': [0 Math
1 Science
2 01.02.1987
3 Math
4 Science
Name: Stream, dtype: object], 'Percentage': [0 07.06.2013
1 90
2 85
3 80
4 75
Name: Percentage, dtype: object]}, 'Tabelle2': {'Date_Names': [0 Ankit
1 Rahul
2 Shaurya
3 Aishwarya
4 Priyanka
Name: Date_Names, dtype: object], 'Dates': [0 01.02.1987
1 02.05.1999
2 02.05.1999
3 01.02.1987
4 02.05.1999
Name: Dates, dtype: object]}}
Process finished with exit code 0
da ich diese ganzen Zusätze nicht in das Dict übernehmen will, sondern nur das was direkt in den Tabellen (im Bild) vorhanden ist.
Kennt sich da jmd mit aus?
LG Christian