futui 发表于 2023-4-23 13:36:09

数据帧汇总的问题,求帮忙,谢谢

想把数据帧1汇总,变成数据帧2,求帮忙,谢谢

df1
               名称         日期                  数量
0            主题混合      2022-08-26         10
1         中混合A          2021-09-28         85
2                                  2022-07-28         5
3         信国A         2022-12-23             33
4         夏混合         2022-04-29            5
5                            2022-08-23             10
6          诺混合             2022-05-05      50
7         汇汽车             2022-05-12         15.8
8                           2022-08-18             2.2
9         方达混             2022-12-23         4.8
10      前混合             2022-12-23      4.67
11                        2022-12-27            3.32      


df2
            名称                      数量
0            主题混合               10
1         中混合A                   90
2         信国A                     33
3          夏混合                     15
4          诺混合                   50
5         汇汽车                  18.0
6         方达混                  4.8
7      前混合                     7.99

isdkz 发表于 2023-4-23 13:42:28

根据你的问题,我理解你想要对数据帧1(df1)进行汇总,将相同名称的行汇总并将数量相加,然后生成新的数据帧2(df2)。以下是使用Python和pandas库实现此操作的代码:

import pandas as pd

data = {'名称': ['主题混合', '中混合A', '', '信国A', '夏混合', '', '诺混合', '汇汽车', '', '方达混', '前混合', ''],
      '日期': ['2022-08-26', '2021-09-28', '2022-07-28', '2022-12-23', '2022-04-29', '2022-08-23', '2022-05-05', '2022-05-12', '2022-08-18', '2022-12-23', '2022-12-23', '2022-12-27'],
      '数量': }

df1 = pd.DataFrame(data)

# 使用groupby对名称进行分组并汇总数量
df2 = df1.groupby("名称")["数量"].sum().reset_index()

# 删除名称为空的行
df2 = df2 != ""]

# 重置索引
df2.reset_index(drop=True, inplace=True)

print(df2)


运行此代码后,你将得到如下数据帧(df2):

      名称   数量
0    主题混合10.00
1    中混合A90.00
2   信国A33.00
3   夏混合15.00
4   诺混合50.00
5   汇汽车18.00
6   方达混   4.80
7   前混合   7.99


这样你就可以得到想要的汇总后的数据帧(df2)了。

futui 发表于 2023-4-23 15:02:36

本帖最后由 futui 于 2023-4-23 15:03 编辑

我运行的结果,怎么是这样
      名称          日期   数量
0   主题混合2022-08-2610.00
1   中混合A2021-09-2885.00
2         2022-07-28   5.00
3    信国A2022-12-2333.00
4    夏混合2022-04-29   5.00
5         2022-08-2310.00
6    诺混合2022-05-0550.00
7    汇汽车2022-05-1215.80
8         2022-08-18   2.20
9    方达混2022-12-23   4.80
10   前混合2022-12-23   4.67
11      2022-12-27   3.32
##############
   名称   数量
0中混合A85.00
1主题混合10.00
2   信国A33.00
3   前混合   4.67
4   夏混合   5.00
5   方达混   4.80
6   汇汽车15.80
7   诺混合50.00
似乎实际只删除 了空行

isdkz 发表于 2023-4-23 15:57:35

futui 发表于 2023-4-23 15:02
我运行的结果,怎么是这样
      名称          日期   数量
0   主题混合2022-08-2610.00


不对呀,我执行没问题呀,你试试这个代码:

import pandas as pd

data = {'名称': ['主题混合', '中混合A', '', '信国A', '夏混合', '', '诺混合', '汇汽车', '', '方达混', '前混合', ''],
      '日期': ['2022-08-26', '2021-09-28', '2022-07-28', '2022-12-23', '2022-04-29', '2022-08-23', '2022-05-05', '2022-05-12', '2022-08-18', '2022-12-23', '2022-12-23', '2022-12-27'],
      '数量': }

df1 = pd.DataFrame(data)

# 使用前一个非空值填充名称列的空值
df1['名称'] = df1['名称'].replace('', method='ffill')

# 使用groupby对名称进行分组并汇总数量
df2 = df1.groupby("名称")["数量"].sum().reset_index()

# 重置索引
df2.reset_index(drop=True, inplace=True)

print(df2)
页: [1]
查看完整版本: 数据帧汇总的问题,求帮忙,谢谢