根据文件名(熊猫)将CSV连接到XLSX文件

时间:2020-01-30 10:34:43

标签: pandas csv xlsx

我有一堆名为' <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数据帧以分别编写,但是我不确定如何写。

1 个答案:

答案 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()