首页 新闻 搜索 专区 学院

python删除满足条件的行

0
悬赏园豆:80 [已解决问题] 解决于 2022-05-12 10:37

求助大佬!
python代码实现
根据交易单号和ID;对金额和数量去重,并且税补求和

我的小白的主页 我的小白 | 初学一级 | 园豆:17
提问于:2021-11-30 10:17
< >
分享
最佳答案
1

我觉得吧,你这个直接用excel里面的函数就好了而且更加快

收获园豆:80
小小咸鱼YwY | 老鸟四级 |园豆:3182 | 2021-11-30 11:14

excel的话,嵌套这一块这么来啊?大佬能指点下么

我的小白 | 园豆:17 (初学一级) | 2021-11-30 11:21

@我的小白:

小小咸鱼YwY | 园豆:3182 (老鸟四级) | 2021-11-30 11:24

@我的小白: 第一步先把 交易号和id复制下来一行,然后用用excel有个删除重复项的东西,然后用sum if 就可以了

小小咸鱼YwY | 园豆:3182 (老鸟四级) | 2021-11-30 11:26

@小小咸鱼YwY: 我这数据量比较大哦,几十万的数据。需要的是同时满足去重、求和。想实现自动化功能

我的小白 | 园豆:17 (初学一级) | 2021-11-30 11:34

@我的小白: 搜嘎,那也简单

小小咸鱼YwY | 园豆:3182 (老鸟四级) | 2021-11-30 11:38

@小小咸鱼YwY: 那怎么来呢?代码能力弱的我~

我的小白 | 园豆:17 (初学一级) | 2021-11-30 11:51

@我的小白:

import pandas as pd

#首先类型要全是文本,自己格式化一下
data = pd.read_excel("你的表.xlsx",keep_default_na=False).values

#
x = {}
info_set = set()
for info in data:
    id = "######".join(info[0,3])
    if info.get(id):
        x[id] = x[id]+int(info[4])
    else:
        x[id] = int(info[4])

    info_set.add(id)

new_list_2 = []
for a in info_set:
    info = a.split("######")
    items ={
        "交易单号": info[0],
        "ID": info[1],
        "金额": info[2],
        "数量": info[3],
        "税补":x[a]
    }
    new_list_2.append(items)
new_list_3 = [list(info_dict.values()) for info_dict in new_list_2]
df = pd.DataFrame(new_list_3, columns=list(new_list_2[0].keys()))
df.to_excel("你的表.xlsx")
df.save()


小小咸鱼YwY | 园豆:3182 (老鸟四级) | 2021-11-30 11:56

@小小咸鱼YwY: 感谢感谢

我的小白 | 园豆:17 (初学一级) | 2021-11-30 13:07
其他回答(1)
0

demo

import pandas as pd

"""
a   b   c   d   e
11  11  3   2   6
11  11  3   2   6
12  12  1   1   2
13  13  2.5 1   7
14  14  2   6   6
14  14  2   6   6

"""

data = {
    "a":[11,11,12,13,14,14],
    "b":[11,11,12,13,14,14],
    "c":[3,3,1,2.5,2,2],
    "d":[2,2,1,1,6,6],
    "e":[6,6,2,7,6,6],
}

df = pd.DataFrame(data)
print(df)

# 结合 a、b、c、d 列去重
df_2 = df.drop_duplicates(subset=['a','b','c','d'],keep='first')
print(df_2)

# 根据 a 列分组求和
res = df_2.groupby('a')['e'].sum()
print(res)

"交易单号" 和 "ID" ,你也可以合并再生成一列;具体效果和使用,你视情况调整

〆灬丶 | 园豆:818 (小虾三级) | 2021-11-30 15:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册