0
我想从Pandas DataFrame中选择一个特定列的值,该值的值以特定文本开头。如果为True,则下一列将使用前一列值的内容进行更新。如何选择熊猫系列值以特定文本开头?
例如,我有一个数据帧df_1
,我想和值a2
更新是a1
与as
开始。
df_1 = pd.DataFrame({'a1':['amtr1',np.nan,'astr2',np.nan,'gbstr2','mkstr2','gbstr2','astr1'],
'a2':[np.nan]*8})
df_1
a1 a2
0 amtr1 NaN
1 NaN NaN
2 astr2 NaN
3 NaN NaN
4 gbstr2 NaN
5 mkstr2 NaN
6 gbstr2 NaN
7 astr1 NaN
我想要这个输出。
a1 a2
0 amtr1 NaN
1 NaN NaN
2 astr2 astr2
3 NaN NaN
4 gbstr2 NaN
5 mkmk2 NaN
6 gbstr2 NaN
7 astr1 astr1
另外'(df_1 [ 'A1'] str.startswith( 'as',na = False))'看起来更简洁。 –
@NickilMaveli是的,我忘记了'str'方法中的'NaN'处理,欢呼声将更新 – EdChum
Tks,如果'as'是一个unicode不是str?在我的真实数据中,有一个错误。 'AttributeError:只能使用带字符串值的.str访问器,它在pandas中使用np.object_ dtype。' –