Python 如何将特定列更改为行,而不更改表中的其他列?

Python 如何将特定列更改为行,而不更改表中的其他列?,python,pandas,group-by,Python,Pandas,Group By,我有这样的数据帧: Date ID Age Gender Fruits 1.1.19 1 50 F Apple 2.1.19 1 50 F Mango 2.1.19 1 50 F Orange 1.1.19 2 75 M

我有这样的数据帧:

  Date       ID     Age      Gender        Fruits
  1.1.19     1      50         F            Apple
  2.1.19     1      50         F            Mango
  2.1.19     1      50         F            Orange
  1.1.19     2      75         M            Grapes
  4.1.19     3      20         M            Apple
  4.1.19     3      20         M            Grapes
我想将“水果”列转换为其他列,为每个人提供二进制信息yes/no。 期望的输出是这样的。丢失的日期应该是NaN

Date          ID     Age      Gender        Apple    Mango      Orange    Grapes 
1.1.19         1      50         F            1        0           0         0
1.1.19         2      75         M            0        0           0         1
2.1.19         1      50         F            0        1           1         0 
3.1.19         NaN    NaN        NaN          NaN     NaN        NaN       NaN
4.1.19         3      20         M            1        0           0         1
我想使用groupby,但我不需要任何聚合

pd.get_dummies(df, columns=['Fruits'], prefix='', prefix_sep='')
更新

pd.get_dummies(df, columns=['Fruits'], prefix='', prefix_sep='').groupby('Date').max()
更新

pd.get_dummies(df, columns=['Fruits'], prefix='', prefix_sep='').groupby('Date').max()

仍然缺少3.1.19df.joinpd.get_dummiesdf的条目,columns=['Fruits',prefix=,prefix_sep=部分正确,因为在2.1.19中,id 1有两个结果,但我需要,在1行中。在您的解决方案中,它为每个项目添加了一行。我不明白为什么会出现这种类型错误:“仍然缺少3.1.19df.joinpd.get_dummiesdf的条目,columns=['Fruits'],prefix=,prefix_sep=部分正确,因为在2.1.19中,id 1有两个结果,但我需要,在1行中。在您的解决方案中,它为每个项目添加了一行。我不明白为什么会出现这种类型错误:'