Cod*_*123 6 python numpy dataframe pandas
如何根据条件将列拆分为两个不同的列,但保留一个键?例如
col1 col2 time value
0 A sdf 16:00:00 100
1 B sdh 17:00:00 -40
2 A sf 18:00:45 300
3 D sfd 20:04:33 -89
Run Code Online (Sandbox Code Playgroud)
我想要一个像这样的新数据帧
time main_val sub_val
0 16:00:00 100 NaN
1 17:00:00 NaN -40
2 18:00:45 300 NaN
3 20:04:33 NaN -89
Run Code Online (Sandbox Code Playgroud)
你可以使用mask:
mask = df['value'] < 0
df['main_val'] = df['value'].mask(mask)
df['sub_val'] = df['value'].mask(~mask)
df = df.drop(['col1','col2', 'value'], axis=1)
print (df)
time main_val sub_val
0 16:00:00 100.0 NaN
1 17:00:00 NaN -40.0
2 18:00:45 300.0 NaN
3 20:04:33 NaN -89.0
Run Code Online (Sandbox Code Playgroud)