我有一个数据帧,我想根据同一数据帧中另一列的值对其进行分组。在
例如:
父/子ID被链接起来,并定义谁与层次树中的谁相关。在
数据帧看起来像(从csv文件输入)
No Name ID Parent_Id
1 Tom 211 111
2 Galie 209 111
3 Remo 200 101
4 Carmen 212 121
5 Alfred 111 191
6 Marvela 101 111
7 Armin 234 101
8 Boris 454 109
9 Katya 109 323
我想根据下面分组中的ID和Parent_ID对这个数据帧进行分组,并基于顶层父对象生成CSV文件。即,阿尔弗雷德.csv, 卡门.csv(只有自己的入口,冰线#4),卡提亚.csv使用to_csv()函数。在
^{pr2}$我想在同一个数据框中创建一个新列,它将有一个标记来指示层次结构。比如:
No Name ID Parent_Id Tag
1 Tom 211 111 Alfred
2 Galie 209 111 Alfred
3 Remo 200 101 Marvela, Alfred
4 Carmen 212 121
5 Alfred 111 191
6 Marvela 101 111 Alfred
7 Armin 234 101 Marvela, Alfred
8 Boris 454 109 Katya
9 Katya 109 323
请注意,名称可以重复,但是ID是唯一的。在
请告诉我如何使用熊猫来实现这一点。我尝试过groupby(),但似乎有点复杂,没有得到我想要的结果。每个父文件应该有一个文件,父文件中有子记录。 如果一个孩子有另一个孩子(比如mavel),它就有资格拥有自己的csv文件。在
最终的结果是
Alfred.csv - All records matching Galie, Tom, Marvela
Marvela.csv - All records matching Remo, Armin
Carmen.csv - Only record matching carmen (row)
Katya.csv - all records matching katya, boris
我将编写一个递归函数来实现这一点。在
首先,创建
{id:name}
,{parent:id}
的字典和递归函数。在然后用}
^{pr2}$Series.apply
创建新列,用Series.str.strip
删除{相关问题 更多 >
编程相关推荐