考虑一个df
包含以下列的数据框:
一列名为amount
. 此列中的所有值要么是大于 0 的整数,要么是 NaN。
名为property_1
、property_2
、 等的多个列property_3
。这些列中的值是任意的。
一个简单的例子df
是:
import numpy as np
import pandas as pd
data = [
[2, 7., 2., 4., 3.],
[np.nan, 8., 3., 4., 2.],
[3, 9., 1., 5., 6.],
[1, 8., 2., 4., 1.],
]
columns = ['amount', 'property_1', 'property_2', 'property_3', 'property_4']
df = pd.DataFrame(data, columns=columns)
在控制台输出中如下所示:
amount property_1 property_2 property_3 property_4
0 2.0 7.0 2.0 4.0 3.0
1 NaN 8.0 3.0 4.0 2.0
2 3.0 9.0 1.0 5.0 6.0
3 1.0 8.0 2.0 4.0 1.0
问题
我想转换df成一个如下所示的数据框:
amount property_1 property_2 property_3 property_4
0 2.0 7.0 2.0 NaN NaN
1 NaN NaN NaN NaN NaN
2 3.0 9.0 1.0 5.0 NaN
3 1.0 8.0 NaN NaN NaN
基本上我想在列名的数字后缀大于amount值或amount值为 NaN 的所有位置设置一个 NaN 值。
我觉得必须有一种聪明的方法来通过一些矢量化数据帧操作来实现这一点。有人知道具体如何吗?
慕勒3428872
相关分类