为对象中的值添加含义

时间:2016-04-20 18:41:36

标签: python pandas machine-learning knn

是否可以使用以下示例中的第三列,以及"展开" /解析例如以下内容中的值: Python中的 Pandas DataFrame 而不实际复制行? 所以如果我们有一个像这样的对象:

X   Y   Count
1   2   3
2   2   2
4   3   1

如果没有,我怎么能在这里给出Count的含义 将行拆分为Count * row,因为这似乎不是一个好的解决方案,因为它会使数据在内存中占用更多的空间。

所以我希望 DataFrame 看起来像这样:

X   Y   Count
1   2   1
1   2   1
1   2   1
2   2   1
2   2   1
4   3   1

1 个答案:

答案 0 :(得分:0)

我认为你的意思是这样的:

new_df = df.loc[df.index.repeat(df['Count'])]

然后行df.loc[n]重复df.Count[n]次。它与groupby相反。

<强>更新

我尝试了new_df['Count'] = 1并提出了SettingWithCopyWarning,除非我做了明确的副本:

new_df = df.loc[df.index.repeat(df['Count'])].copy()
new_df['Count'] = 1    # <- now it works without a warning