[英]Compare values in two dataframes
我有两个数据框。 当 data1['col1'] 中的值与 data2['col1'] 中的值匹配时,我想在 data1['col2'] 中应用字符串更改。 我没有任何错误,但更改不适用。
输入样本:
data1 = {"col1": ["001", "002", "004"], "col2" : ["SL", "SL", "SL"]}
df1 = pd.DataFrame(data1)
data2 = {"col1": ["009", "004", "025"]}
df2 = pd.DataFrame(data2)
print(df1)
print(df2)
col1 col2
0 001 SL
1 002 SL
2 004 SL
col1
0 009
1 004
2 025
for idx, val in df1["col1"].iteritems():
for idx2, val2 in df2["col1"].iteritems():
if val == val2:
df1["col2"][idx] = "SL MATCH"
预计 Output:
print(df1)
col1 col2
0 001 SL
1 002 SL
2 004 SL MATCH
使用Series.isin
来检查另一列的值:
df1.loc[df1['col1'].isin(df2['col1']), "col2"] = "SL MATCH"
print (df1)
col1 col2
0 001 SL
1 002 SL
2 004 SL MATCH
或者:
df1["col2"] = np.where(df1['col1'].isin(df2['col1']), "SL MATCH", df1["col2"])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.