1
循环的我原来问a question在数据科学界:性能与大熊猫
我有格式化如下表所示的表格:
Feature amount ID Feat1 2 1 Feat2 0 1 Feat3 0 1 Feat4 1 1 Feat2 2 2 Feat4 0 2 Feat3 0 2 Feat6 1 2
比方说,我有200点不同的ID。我想将所有不同的 特征转换为变量并将其转换为观察值,因此我将具有相同ID的 行合并为一行。例如,
Feat1 Feat2 Feat3 Feat4 Feat5 Feat6 ID 2 0 0 1 NA NA 1 NA 2 0 0 NA 1 2
是否有一种很好的方法可以在Python(熊猫)或R?
这是我得到了答案:
newdata = pd.DataFrame(columns=['ID', 'Location', 'Feat1', 'Feat2', 'Feat3', 'Feat4', 'Feat5', 'Feat6']) grouped = data.groupby(['ID', 'Location']) for index, (group_name, d) in enumerate(grouped): newdata.loc[index, 'ID'] = group_name[0] newdata.loc[index, 'Location'] = group_name[1] for feature, amount in zip(d['Feature'], d['amount']): newdata.loc[index, feature] = amount
更多谷歌搜索后,我发现这个question的回答说:
所以尽量避免Python
loop for i, row in enumerate(...)
完全
我想知道,关于我原来的问题,有没有更高效的方法?
感谢您的回复。我删除了位置列,这不是这个问题的一个因素。 – chchannn
工作!感谢熊猫! – chchannn