展平熊猫数据框

达斯汀

我有一个看起来像这样的Pandas DataFrame(当前没有内置行索引以外的索引,但是如果将索引添加到“ Person”和“ Car”更容易的话,也可以):

before = pd.DataFrame({
  'Email': ['[email protected]','[email protected]','[email protected]','[email protected]','[email protected]'],
  'Person': ['John','Mary','Jane','John','Mary'],
  'Car': ['Ford','Toyota','Nissan','Nissan','Ford']
})

我想将其重塑为如下所示:

after = pd.DataFrame({
  'Person': ['John','Mary','Jane'],
  'Email': ['[email protected]','[email protected]','[email protected]'],
  'Ford': [True,True,False],
  'Nissan': [True,False,True],
  'Toyota': [False,True,False]
})

请注意,约翰既拥有福特和日产汽车,玛丽拥有福特和日产汽车,而保罗则坚持他可信赖的日产汽车。

我已经尝试过各种不同的排列方式,包括堆叠多索引的DataFrame,分组,透视-我似乎无法弄清楚如何从“ Car”列中获取值并将其转置为值为“ True”的新列。 ”,例如通过名字将人们合并在一起。

阿南德·库玛(Anand S Kumar)

不知道这是否是执行此操作的最佳方法,但是一种方法是-

In [26]: before.pivot_table(index=['Email','Person'],columns=['Car'], aggfunc=lambda x: True).fillna(False).reset_index()
Out[26]:
Car             Email Person   Ford Nissan Toyota
0    [email protected]   Jane  False   True  False
1    [email protected]   John   True   True  False
2    [email protected]   Mary   True  False   True

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章