【发布时间】:2018-07-17 12:53:04
【问题描述】:
我有一个数据框:
id category value
1 1 abc
2 2 abc
3 1 abc
4 4 abc
5 4 abc
6 3 abc
类别1 = best、2 = good、3 = bad、4 =ugly
我想创建一个新列,对于类别 1,列中的值应为 cat_1,对于类别 2,列中的值应为 cat2。
new_col2 中类别 1 的值应为 cat_best,类别 2 的值应为 cat_good。
df['new_col'] = ''
我最后的df
id category value new_col new_col2
1 1 abc cat_1 cat_best
2 2 abc cat_2 cat_good
3 1 abc cat_1 cat_best
4 4 abc cat_4 cat_ugly
5 4 abc cat_4 cat_ugly
6 3 abc cat_3 cat_bad
我可以在 for 循环中迭代它:
for index,row in df.iterrows():
df.loc[df.id == row.id,'new_col'] = 'cat_'+str(row['category'])
有没有更好的方法(最省时)
【问题讨论】:
-
@Zero 我想我的第二部分不是重复的