我是pandas / python的新手。所以我正在读一个.xlsx文件,在那里我创建了一堆数据帧,16是精确的,而主数据帧是空的。现在我想使用for循环将所有这16个数据帧逐个附加到主数据帧。
我想过迭代列表的方法。但是这些df_1,df_2等是否可以存储在列表中,然后我们可以迭代它们。
让我们假设我有一个csv文件,
df1 = pd.read_csv('---.csv')
df2 = pd.read_csv('---.csv')
然后我创建一个列表,
filenames = ['---.csv','---.csv']
创建一个空的主数据帧:
master_df= []
最后,遍历列表:
for f in filenames:
master_df.append(pd.read_csv(f))
但这不适用,我需要类似的东西,所以我如何迭代所有的数据帧。任何解决方案都将不胜感激。
最后,这是我的master_df:
master_df = pd.DataFrame({'Variable_Name': [], 'Value':[], 'Count': []})
这是第一个数据帧:
df_1 = pd.DataFrame({
'Variable_Name': ['Track', 'Track', 'Track', 'Track'],
'Value': ['Track 38','Track 39', 'Track 40', 'Track 37'],
'Count': [161, 160, 158, 152]})
同样还有15个。
答案 0 :(得分:0)
这是因为 append()返回新的数据帧,这个对象应该存储在某个地方
尝试:
for f in filenames:
master_df = master_df.append(pd.read_csv(f))
附加功能的更多信息:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.append.html