为了处理多个 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
这个 Action 很简单但是不适合处理大的DataFrames, 提前致谢
编辑:数据帧的大小不一定相同
最佳答案
我假设您正在处理相同大小的数据帧,在这种情况下
df2.loc[df2['C'] == df['A'], 'C'] = df['B']
你得到
C D
0 2 1
1 3 1
2 1 1
关于python - 使用 Python Pandas 处理双 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45031204/