我有两个不想复制的大型DataFrame,但希望对其应用相同的更改。如何正确执行此操作?例如,这类似于我要执行的操作,但是规模较小。这只会创建给出每个DataFrame结果的临时变量df,但我希望两个DataFrame都可以自己更改:
import pandas as pd
df1 = pd.DataFrame({'a':[1,2,3]})
df2 = pd.DataFrame({'a':[0,1,5,7]})
for df in [df1, df2]:
df = df[df['a'] < 3]
答案 0 :(得分:2)
我们可以用query
做inplace
df1 = pd.DataFrame({'a':[1,2,3]})
df2 = pd.DataFrame({'a':[0,1,5,7]})
for df in [df1, df2]:
df.query('a<3',inplace=True)
df1
a
0 1
1 2
df2
a
0 0
1 1
答案 1 :(得分:0)
不要以为这是最好的解决方案,但应该去做。
import pandas as pd
df1 = pd.DataFrame({'a':[1,2,3]})
df2 = pd.DataFrame({'a':[0,1,5,7]})
dfs = [df1, df2]
for i, df in enumerate(dfs):
dfs[i] = df[df['a'] < 3]
dfs[0]
a
0 1
1 2