熊猫在行上查找交配条目并将这些行中的列合并为一列

发布于 2025-01-09 04:17:12 字数 2255 浏览 0 评论 0原文

我有一个这样的数据字段。

索引产品购买_地址订单_日期
0A604 Cherry st, Dallas2019-10-28
1B225 5th st, LA2019-10-29
2C604 Cherry st, Dallas2019-10-28
3D225 5th st, LA2019-10 -29
4E967 第 12 街,纽约2019-10-27
5F967 12th st,纽约2019-10-27
6A628 Jefferson St,纽约2019-10-20
7B628 Jefferson St,纽约2019-10-20
8A694 Meadow St,亚特兰大2019 -10-25
9B694 Meadow St, 亚特兰大2019-10-25
10C27 Wilson St, Austin2019-10-26
11D27 Wilson St, Austin2019-10-26

我需要创建一个新的数据字段,在其中将产品合并为一个如果地址和订单日期相同(意味着它们是同时订购的),则列。

df 应如下所示:

IndexProductPurchase_Address
0A, C604 Cherry st, Dallas
1B, D225 5th st, LA
2E, F967 12th st, NY
3A, B628 Jefferson St, NY
4A, B694 Meadow St, 亚特兰大
5C, D27 Wilson St, 奥斯汀

然后从 df 开始,我在那里数了组合发生的次数:

IndexProduct_CombinationNr_Of_Times
0A, C1
1B, D1
2E, F1
4A, B2
5C, D1

我如何实现这样的目标? 谢谢!

I have a data field like this.

IndexProductPurchase_AddressOrder_Date
0A604 Cherry st, Dallas2019-10-28
1B225 5th st, LA2019-10-29
2C604 Cherry st, Dallas2019-10-28
3D225 5th st, LA2019-10-29
4E967 12th st, NY2019-10-27
5F967 12th st, NY2019-10-27
6A628 Jefferson St, NY2019-10-20
7B628 Jefferson St, NY2019-10-20
8A694 Meadow St, Atlanta2019-10-25
9B694 Meadow St, Atlanta2019-10-25
10C27 Wilson St, Austin2019-10-26
11D27 Wilson St, Austin2019-10-26

I need to make a new data field where I would merge the products into a single column if the address and order date are the same (meaning they where ordered at the same time).

The df should look something like this:

IndexProductPurchase_Address
0A, C604 Cherry st, Dallas
1B, D225 5th st, LA
2E, F967 12th st, NY
3A, B628 Jefferson St, NY
4A, B694 Meadow St, Atlanta
5C, D27 Wilson St, Austin

And then from that a df, where I count the number of times a combination has happened:

IndexProduct_CombinationNr_Of_Times
0A, C1
1B, D1
2E, F1
4A, B2
5C, D1

How would I achieve something like this?
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鸢与 2025-01-16 04:17:13

Groupby.aggGroupby.countSeries.to_frame 结合使用:

In [1783]: out = df.groupby(['Purchase_Address', 'Order_Date']).agg({'Product': ','.join}).groupby('Product')['Product'].count().to_frame('Nr_Of_Times').reset_index()

In [1784]: out
Out[1784]: 
  Product  Nr_Of_Times
0     A,B            2
1     A,C            1
2     B,D            1
3     C,D            1
4     E,F            1

Use Groupby.agg with Groupby.count and Series.to_frame:

In [1783]: out = df.groupby(['Purchase_Address', 'Order_Date']).agg({'Product': ','.join}).groupby('Product')['Product'].count().to_frame('Nr_Of_Times').reset_index()

In [1784]: out
Out[1784]: 
  Product  Nr_Of_Times
0     A,B            2
1     A,C            1
2     B,D            1
3     C,D            1
4     E,F            1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文