我有一堆名为' <3-letter-string> YYYY.csv '的CSV。 <3-letter-string>有四个不同的版本,我想将csvs分为四个xlsxs,每个由三个字母字符串标识。
我的代码:
import pandas as pd
import os
full_df = pd.DataFrame()
for filename in os.listdir('C:/Users/XXXXXX/ZZZZZZ'):
if filename.endswith(".csv"):
print(filename)
df = pd.read_csv(filename, skiprows=1, names=['ID','Units Sold','Retail Dollars'])
df['Year'] = filename[-8:-4]
full_df = pd.concat([full_df, df])
full_df.to_excel(filename[0:3] + '.xlsx', index=False)
这是我想要的四个不同的xlsxs,但是它们都是不同csvs的混合。
如何告诉熊猫根据文件名将它们分为四个单独的xlsx?我最初的想法是在倒数第二行中包含文件名切片,并创建四个不同的串联full_df数据帧以分别编写,但是我不确定如何写。
答案 0 :(得分:1)
import pandas as pd
import os
def Get_Yo_Fantasy_Hennnnnyyyyy():
full_df = pd.DataFrame()
for filename in os.listdir("path"):
if filename.endswith(".csv"):
print(filename)
df = pd.read_csv(
filename,
skiprows=1,
names=["ID", "Units Sold", "Retail Dollars"])
df["Year"] = filename[-8:-4]
df["Type"] = filename[0:3]
full_df = pd.concat([full_df, df])
for i in list(full_df.Type.unique()):
full_df[full_df.Type.str.contains(i)].to_excel(
"{}".format(i) + ".xlsx", index=False)
Get_Yo_Fantasy_Hennnnnyyyyy()