在无法合并时添加基于另一个数据框的列
Adding a column based on another dataframe when merging is not possible
我的第一个数据框(相同的 name
和 object
可能出现多次):
df_1=
name object number1 number2
0 n1 o1 0.0 1.0
1 n1 o2 1.0 1.0
2 n2 o1 0.0 1.0
3 n3 o3 1.0 0.0
...
我的第二个数据框可能不包含第一个数据框中出现的所有 objects
:
df_2=
value1 value2 number3 object
0 90.10 40.15 Yes o1
1 80.30 92.16 No o3
2 20.57 93.69 No o4
3 40.60 94.32 Yes o5
...
我想将 number3
列附加到第一个数据帧,其中 Yes
转换为 1.0
,No
转换为 0.0
,但忽略我们没有关于 object
的任何信息的行。所以它会是:
name object number1 number2 number3
0 n1 o1 0.0 1.0 1.0
1 n2 o1 0.0 1.0 1.0
2 n3 o3 1.0 0.0 0.0
...
我只想进行转换:
df_2.number3.replace(to_replace=['No', 'Yes'], value=[0.0, 1.1])
但是我不能只在 object
上 merge
,因为它们并不相同。 是否可以搜索 df_2
中 objects
的 number3
,附加它,然后删除其余行?
您似乎只想在 object
列上执行 join/merge:
df1.merge(df2,on=['object']).replace(to_replace={'number3':['No', 'Yes']}, value={'number3':[0.0, 1.0]})```
我的第一个数据框(相同的 name
和 object
可能出现多次):
df_1=
name object number1 number2
0 n1 o1 0.0 1.0
1 n1 o2 1.0 1.0
2 n2 o1 0.0 1.0
3 n3 o3 1.0 0.0
...
我的第二个数据框可能不包含第一个数据框中出现的所有 objects
:
df_2=
value1 value2 number3 object
0 90.10 40.15 Yes o1
1 80.30 92.16 No o3
2 20.57 93.69 No o4
3 40.60 94.32 Yes o5
...
我想将 number3
列附加到第一个数据帧,其中 Yes
转换为 1.0
,No
转换为 0.0
,但忽略我们没有关于 object
的任何信息的行。所以它会是:
name object number1 number2 number3
0 n1 o1 0.0 1.0 1.0
1 n2 o1 0.0 1.0 1.0
2 n3 o3 1.0 0.0 0.0
...
我只想进行转换:
df_2.number3.replace(to_replace=['No', 'Yes'], value=[0.0, 1.1])
但是我不能只在 object
上 merge
,因为它们并不相同。 是否可以搜索 df_2
中 objects
的 number3
,附加它,然后删除其余行?
您似乎只想在 object
列上执行 join/merge:
df1.merge(df2,on=['object']).replace(to_replace={'number3':['No', 'Yes']}, value={'number3':[0.0, 1.0]})```