pandas 如何实现将数值按照前几位是否相同来聚合?(python)

最近遇到这样一个问题,
如何使用pandas 实现将数值按照前几位是否相同来聚合。(如将某字段前四位相同的,某字段分别求和)


那么,首先准备一组示例数据

                在这里插入图片描述

import pandas as pd
df = pd.DataFrame({
    
    "party_id": [1101910000, 1101910000, 1101910000, 6523930000, 6523930000, 6523930000],
                   "value": [1, 3, 5, 2, 1, 3]}
)
print(df)

在这里插入图片描述


需求示例:对字段party_id的前四位数相同的数据,分别对其字段value进行求和。

思路:

  • 首先要把字段party_id转换为字符串格式。这个使用DataFrame的astype()方法即可实现。
  • 然后,使用.str.slice()方法进行按长度切片。
  • 切片后使用groupy()方法聚合,再用sum()求和即实现了我们的需求。
df1 = df.astype({
    
    "party_id":str})
df1['party_id'] = df1['party_id'].str.slice(0,4)
print(df1.groupby("party_id").sum())

在这里插入图片描述


如果您有更好的思路,欢迎在评论区一起分享!

猜你喜欢

转载自blog.csdn.net/weixin_48964486/article/details/123622284