我有一堆 CSV 文件,每个文件都以收集日期命名,即。 :
2020-03-21.csv
2020-03-22.csv
2020-03-23.csv
etc....
我想创建一个包含来自所有 CSV 的数据的单个 pandas DataFrame,并使用一个新的日期列列出数据的来源日期。作为玩具示例:
当前的单个 CSV(例如 2020-03-19.csv
):
Country X Y
Australia 10 14
China 24 16
Canada 18 35
期望的结果(组合 DataFrame):
Country X Y Date
Australia 10 14 2020-03-19
China 24 16 2020-03-19
Canada 18 35 2020-03-19
Australia 14 16 2020-03-20
China 23 17 2020-03-20
Canada 20 38 2020-03-20
Australia 25 19 2020-03-21
etc...
在 Pandas 中实现这一目标的最佳方法是什么?我尝试了几种使用 pd.merge
和 pd.concat
的方法,但没有成功。
最佳答案
首先,您需要列出文件夹中的所有路径 csv 文件:
import glob
csvfiles = []
csvfiles = glob.glob("/path/to/folder/*.csv")
print(csvfiles)
然后你将遍历所有这些文件并将它们连接起来:
list_df = []
for csvfile in csvfiles:
#read csv file to df
df = pd.read_csv(csvfile)
#get the filename ex: 2020-03-19
csv_name = csvfile.split('/')[-1].split('.')[0]
#create a new column with all values are filename ex: 2020-03-19
df['Date'] = csv_name
#add df to a list
list_df.append(df)
#concat all the df in the list
final_df = pd.concat(list_df)
关于python - 在 Pandas 中组合单独的每日 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60923806/