如何循环更新许多熊猫数据框

时间:2019-02-20 14:24:14

标签: python pandas dataframe

我正在处理许多数据框,因此需要以相同的方式更新所有这些数据框。我认为循环执行此操作要比为每个更改编写唯一的行要容易。但是我无法更新数据框。

这是我尝试过的(但不起作用)

pd1=pd.read_csv('data1.csv')
pd2=pd.read_csv('data2.csv')

samples = [pd1,pd2]

for i, df in enumerate(samples):
    samples[i] = samples[i].truncate(after=99, axis="rows")

有什么想法如何以适当的方式更新更改或遍历数据框?

2 个答案:

答案 0 :(得分:0)

这会覆盖文件,因此,如果要保留原始文件,则需要另存为其他文件名,例如:

pd.read_csv(file, nrows=100).to_csv('trunc_'+ file, index=False)

但是您可以遍历:

import pandas as pd

filenames = ['data1.csv','data2.csv']

for file in filenames:
    pd.read_csv(file, nrows=100).to_csv(file, index=False)

答案 1 :(得分:0)

假设2个dfs为:

print(df1)
   col1  col2 col3 col4
0     1     2    A    S
1     3     4    A    P
2     5     6    B    R
3     7     8    B    B

print(df2)
   col5  col6 col3
0     9    10    A
1    11    12    R

您可以将字典更新并存储为:

samples  = [df1,df2]
frames={}
for e,i in enumerate(samples):
    frames.update([('df'+str(e+1), i.truncate(after=2, axis="rows"))])

print(frames)

{'df1':    col1  col2 col3 col4
0     1     2    A    S
1     3     4    A    P
2     5     6    B    R, 'df2':    col5  col6 col3
0     9    10    A
1    11    12    R}

现在只需调用密钥即可获取数据框:

print(frames['df1'])

   col1  col2 col3 col4
0     1     2    A    S
1     3     4    A    P
2     5     6    B    R