Pandas 2.1.4版本中fillna方法未按预期生效的问题求助
Pandas 2.1.4版本中fillna方法未按预期生效的问题求助
大家好,我最近在Colab上处理Pandas数据的时候碰到了一个奇怪的问题,想请教下各位大佬。
首先先给大家看下我的原始DataFrame:
import pandas as pd df = pd.DataFrame( { 'a': ['long', 'long', 'short', 'long', 'short', 'short', 'short'], 'b': [1, -1, 1, 1, -1, -1, 1], } )
我想要生成一个新列a_1,预期的输出结果是这样的:
| a | b | a_1 | |
|---|---|---|---|
| 0 | long | 1 | long |
| 1 | long | -1 | long |
| 2 | short | 1 | short |
| 3 | long | 1 | long |
| 4 | short | -1 | long |
| 5 | short | -1 | long |
| 6 | short | 1 | short |
我的实现逻辑是这样的:先把b列等于-1的行的a_1设为'long',然后用fillna把空值用a列的值填充:
df.loc[df.b.eq(-1), 'a_1'] = 'long' df['a_1'] = df.a_1.fillna(df.a)
但问题来了,这段代码在Pandas 1.2.4版本里是正常工作的,可是在Colab当前默认的2.1.4版本里,fillna完全不生效,结果根本不是我想要的样子,这实在太奇怪了!有没有朋友碰到过类似的情况,或者知道这是怎么回事呀?
备注:内容来源于stack exchange,提问作者AmirX
相关产品推荐
相关产品推荐

