我有一个看起来像这样的数据帧:
Name V
S_1 NaN
01 p
02 p
S_2 NaN
03 p
S_3 NaN
04 p
我希望在列"中具有值;名称";其包含";S_;以在其自己的列中;S_;值在它自己的列中(与"S_"值对齐(;V";列与";名称";柱
所以最终的数据帧看起来是这样的:
Name Name2 V
S_1 01 p
S_1 02 p
S_2 03 p
S_3 04 p
我知道条件语句会涉及str.contains方法,但我不确定如何继续更改数据帧,使其看起来像我想要的样子。
我们可以将mask
与notnull
:一起使用
mask = df.V.notnull()
# also according to your logic
# mask = ~ df['Name'].str.startswith('S_')
df['Name1'] = df['Name'].mask(mask).ffill()
df = df[mask]
输出:
Name V Name1
1 01 p S_1
2 02 p S_1
4 03 p S_2
6 04 p S_3