为了处理多个DataFrame上的修改,我有一段可行的代码,但我想提高它的效率。
我确信这个问题有更好的解决方案。
In [1]: import pandas as pd
In [1]: df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
In [2]: df
Out[2]:
A B
0 1 2
1 1 3
2 4 6
In [1]: df2 = pd.DataFrame([[1, 1], [1, 1], [1, 1]], columns=['C', 'D'])
In [2]: df2
Out[2]:
C D
0 1 1
1 1 1
2 1 1
事实上,为了识别值并在相等的函数中替换,例如,我使用double for llop来浏览Dataframes:
for i in range(0, df['A'].size):
for j in range(0, df2['C'].size):
if df.loc[i,'A'] == df2.loc[j, 'C'] :
df2.loc[j, 'C'] = df.loc[i,'B']
else :
pass
In [2]: df2
Out[2]:
C D
0 2 1
1 3 1
2 1 1
此操作非常简单,但不适合处理大型DataFrame, 非常感谢提前
编辑:数据框的大小不一定
答案 0 :(得分:1)
我假设您正在处理相同大小的数据框,在这种情况下
df2.loc[df2['C'] == df['A'], 'C'] = df['B']
你得到了
C D
0 2 1
1 3 1
2 1 1