我有这样的数据框:
>>df
L1 L0 desc_L0
4956 10 Hi
1509 nan I am
1510 20 Here
1511 nan where r u ?
我希望在desc_L1
的值为空且同一时间将L0
值移至desc_L0
时插入新列desc_L1
。
期望的输出:
L1 L0 desc_L0 desc_L1
4956 10 Hi nan
1509 nan nan I am
1510 20 Here nan
1511 nan nan where r u ?
如何以pythonic方式完成此操作?
答案 0 :(得分:1)
首先复制你的系列:
df['desc_L1'] = df['desc_L0']
然后使用掩码更新两个系列:
mask = df['L1'].isnull()
df.loc[~mask, 'desc_L1'] = np.nan
df.loc[mask, 'desc_L0'] = np.nan
答案 1 :(得分:0)
您可以尝试:
df['desc_L1'] = df['desc_L0']
df['desc_L1'] = np.where(df['L0'].isna(), df['desc_L0'], np.NaN)
df['desc_L0'] = np.where(df['L0'].isna(), np.NaN, df['desc_L0'])
输入:
L0 desc_L0
0 10.0 hi
1 NaN I am
2 20.0 Here
3 NaN where are u?
输出:
L0 desc_L0 desc_L1
0 10.0 hi NaN
1 NaN NaN I am
2 20.0 Here NaN
3 NaN NaN where are u?