我有大约1000条记录的csv。报告中的一列称为级别,包括字符串数据,如级别1,级别2等。大约有30个级别。级别代表公司的收入水平。因此,公司1级意味着它们的收入不到1M。我可以通过执行以下操作找到一种逐个替换值的方法:
df.loc[df['Level'] == 'Level 1', 'Level'] = 1000000
我有办法将相同的逻辑应用于所有记录吗?也许我可以把所有东西扔进字典里:
dict = {
'Level 1': 1000000,
'Level 2': 2000000,
}
我想按类型和收入水平对所有公司进行分散图,所以也许在matlab中有一种方法可以做到这一点?
答案 0 :(得分:2)
考虑df
df = pd.DataFrame(dict(
Level=['Level {}'.format(i) for i in [1, 2, 3, 2, 1]],
Other=range(5)
))
df
Level Other
0 Level 1 0
1 Level 2 1
2 Level 3 2
3 Level 2 3
4 Level 1 4
分配您的dct
dct = {'Level 1': 1000000,
'Level 2': 2000000,
'Level 3': 3000000}
和
df.assign(Level=df.Level.map(dct))
Level Other
0 1000000 0
1 2000000 1
2 3000000 2
3 2000000 3
4 1000000 4
答案 1 :(得分:2)