我有一个columns[id, type, income]
的数据框,并希望根据收入添加一个名为incomebracket
的附加列。有没有人有任何建议?
理想情况下,我会根据一系列间隔创建新的incomebracket
列。即:
incomebracket = 1 if 100000 < income < 150000
到目前为止,我知道如何创建一个空白数据框列:df['incomebracket']
,但我无法弄清楚其余部分。
有什么建议吗?
干杯
答案 0 :(得分:0)
试试这个
df['incomebracket'] = 0 #default
df.incomebracket[(df.income >= 100000) & (df.income < 150000)] = 1
我首选的方法是使用numpy where
import numpy as np
df['incomebracket'] = np.where((df.income >= 100000) & (df.income < 150000), 1, 0)
答案 1 :(得分:0)
您可能对pd.cut
感兴趣:
>>> df = pd.DataFrame({"income": np.random.uniform(0, 10**6, 10)})
>>> df["incomebracket"] = pd.cut(df.income, np.linspace(0, 10**6, 11))
>>> df
income incomebracket
0 474229.041695 (400000, 500000]
1 128577.241314 (100000, 200000]
2 254345.417166 (200000, 300000]
3 622104.725105 (600000, 700000]
4 93779.964789 (0, 100000]
5 865556.464985 (800000, 900000]
6 304711.799685 (300000, 400000]
7 601910.710932 (600000, 700000]
8 229606.880350 (200000, 300000]
9 49889.911661 (0, 100000]
[10 rows x 2 columns]
另见pd.qcut
。