
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