我想重新排列包含Nan的列名值
我想要的条件是,若列表中的字符串与列[1]匹配,它将只重新移位包含匹配字符串下的行的列值,所以它是移位前的my dataframe
[in] : df
[Out]:
column1 column2 column3
0 aba abab 800.0 900.0
1 aaa acc 900.0 60.0
2 bba jka 809.0 400.0
3 fff yy 521.0 490.0
4 hkm asa j 290.0 321.0
5 daa rr oo 88.0 Nan
6 jtuy ww ddw Nan 600.0
8 bkam ftf Nan Nan
9 fgqefc Nan Nan
10 daas we fg Nan Nan
11 judv mm mk Nan Nan
12 hus gg hhh Nan Nan
这是我的名单
my_list= ['bba jka', 'hkm asa j']
所以我想要的是我的数据帧,名字是df1
column1 column2 column3
0 aba abab 800.0 900.0
1 aaa acc 900.0 60.0
2 bba jka Nan Nan
3 fff yy 809.0 400.0
4 hkm asa j Nan Nan
5 daa rr oo 521.0 490.0
6 jtuy ww ddw 290.0 321.0
8 bkam ftf 88.0 Nan
9 fgqefc Nan 600.0
10 daas we fg Nan Nan
11 judv mm mk Nan Nan
12 hus gg hhh Nan Nan
我不知道如何通过shift和match实现df1,有人能解决吗
以下是一个可能不是最佳的建议:
步骤1:为^{做准备:
结果(
df
)如下所示:步骤2:通过
apply
和NaN
通过掩码match
进行“移位”:步骤3:清理:
结果有望如预期的那样:
但是我不喜欢在
apply
中使用df.shift
。问题是第一行中的可能匹配将导致没有shift
的错误结果。这里有一个版本可以避免这个问题,并且在apply
中更直接:(这里的假设是字符串
'NOT IN LIST'
不在my_list
中。很可能空字符串''
也是一个不错的选择。)相关问题 更多 >
编程相关推荐