gpt4 book ai didi

python - 旋转具有重复索引值的 Pandas 数据框

转载 作者:太空宇宙 更新时间:2023-11-03 14:19:17 24 4
gpt4 key购买 nike

我有一个数据框,其中包含每个加入我的网站并进行购买的用户的行。

+---+-----+--------------------+---------+--------+-----+
| | uid | msg | _time | gender | age |
+---+-----+--------------------+---------+--------+-----+
| 0 | 1 | confirmed_settings | 1/29/15 | M | 37 |
| 1 | 1 | sale | 4/13/15 | M | 37 |
| 2 | 3 | confirmed_settings | 4/19/15 | M | 35 |
| 3 | 4 | confirmed_settings | 2/21/15 | M | 21 |
| 4 | 5 | confirmed_settings | 3/28/15 | M | 18 |
| 5 | 4 | sale | 3/15/15 | M | 21 |
+---+-----+--------------------+---------+--------+-----+

我想更改数据框,以便每一行对于一个 uid 都是唯一的,并且有一个名为 saleconfirmed_settings 的列,其中包含操作的时间戳。请注意,并非每个用户都有一个sale,但每个用户都有一个confirmed_settings。如下所示:

+---+-----+--------------------+---------+---------+--------+-----+
| | uid | confirmed_settings | sale | _time | gender | age |
+---+-----+--------------------+---------+---------+--------+-----+
| 0 | 1 | 1/29/15 | 4/13/15 | 1/29/15 | M | 37 |
| 1 | 3 | 4/19/15 | null | 4/19/15 | M | 35 |
| 2 | 4 | 2/21/15 | 3/15/15 | 2/21/15 | M | 21 |
| 3 | 5 | 3/28/15 | null | 3/28/15 | M | 18 |
+---+-----+--------------------+---------+---------+--------+-----+

为此,我正在尝试:

df1 = df.pivot(index='uid', columns='msg', values='_time').reset_index()
df1 = df1.merge(df[['uid', 'gender', 'age']].drop_duplicates(), on='uid')

但我收到此错误:ValueError: Index contains duplicate entries, cannot reshape

如何旋转具有重复索引值的 df 来转换我的数据框?


编辑:df1 = df.pivot_table(index='uid', columns='msg', values='_time').reset_index()

出现此错误 DataError: No numeric types to aggregate 但我什至不确定这是正确的路径。

最佳答案

我怀疑确实有重复的 uid-msg 条目/键(例如 uid 2 在 msg< 下有 2 个 confirmed_settings 条目),您在 fixxxer 的回答的评论中提到了这一点。如果有,你就不能使用pivot,因为你无法告诉它如何处理聚合过程中遇到的不同值(count?max?mean?sum?)。请注意,索引错误是结果透视表 df1 的索引错误,而不是原始 DataFrame df

pivot_table 让您可以使用 aggfunc 参数来完成。这样的事情怎么样?

df1 = df.pivot_table(index = 'uid', columns = 'msg', values = '_time', aggfunc = len)

这将帮助您找出哪些 user-msg 记录有重复条目(任何超过 1 的条目),并在清除它们后,您可以在 df 上使用 pivot成功转换 _time

关于python - 旋转具有重复索引值的 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29926698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com