【发布时间】:2021-07-10 13:19:15
【问题描述】:
我有两个数据框。第一个是df1 = pd.DataFrame({'A': [5, 0], 'B': [2, 4]}) 即
A B
0 5 2
1 0 4
另一个是df2 = pd.DataFrame({'C': [1, 1], 'D': [3, 3]}),即
C D
0 1 3
1 1 3
我只想从 df1 中获取 4 个并在 df2 中创建新列。我试过这个df2['E']=df1['B'][df1['B']==4] 并得到了
C D E
0 1 3 NaN
1 1 3 4.0
我希望 df2 的两行都是 4。我怎样才能做到这一点?任何帮助都会是巨大的帮助。
【问题讨论】:
-
如果你已经知道你希望它是 4,那么就做
df2['E']=4否则一定有一些你没有告诉我们的其他逻辑。您是要获取B的max还是最后一个值?一定是什么。 -
谢谢@Chris,但我有比这更大的数据。这只是为了可读性和清晰的提问。除了这个,你还有什么其他方法可以推荐吗?
-
@Chris 不是我不想要
max的B也不是最后一个值。我只想要可以为任何值执行此操作的代码。 -
那么您是否只是检查该值是否存在,如果存在,则用该值填充一个新列?如果那个值不存在,你想要一个空值吗?
-
@Chris 是的。是的,如果值不存在,那么如果我得到 NaN 则很好