我有一个类似这样的数据帧:
data = [['A', 1, 100], ['A', 3, 100], ['A', 2, 100], ['A', 3, 100], ['A', 5, 100]]
df = pd.DataFrame(data, columns = ['?', 'Rating', 'Amount'])
? Rating Amount
0 A 1 100
1 A 3 100
2 A 2 100
3 A 3 100
4 A 5 100
我需要根据评级值创建新的列,替换金额-如下所示:
? Rating Amount 1 2 3 5
0 A 1 100 100 0 0 0
1 A 3 100 0 0 100 0
2 A 2 100 0 100 0 0
3 A 3 100 0 0 100 0
4 A 5 100 0 0 0 100
现在我有这个:
ratingnames = np.unique(list(df['Rating']))
ratingnames.sort()
d = pd.DataFrame(0, index=np.arange(len(df['Rating'])), columns=ratingnames)
for i in range(len(df['Rating'])):
ratingvalue = df.loc[i, 'Rating']
d.loc[i, ratingvalue] = df.loc[i, 'Amount']
df = pd.concat([df, d], axis = 1)
但我觉得可以改进一下。有什么建议吗?谢谢!你知道吗
这将达到以下目的:
输出:
IIUC,使用^{} 和} :
df['Amount'],
相乘,然后在axis=1
上使用^{时间安排:![enter image description here](https://i.stack.imgur.com/46DPT.png)
相关问题 更多 >
编程相关推荐