pandas 如何新增列?

发布于 2022-09-12 03:08:17 字数 861 浏览 21 评论 0

脚本:

import pandas

df = pandas.DataFrame([dict(
    id=1001,
    province='河南',
    city='郑州',
    amount=100,
), dict(
    id=1002,
    province='河南',
    city='安阳',
    amount=100,
), dict(
    id=1003,
    province='河北',
    city='保定',
    amount=100,
), dict(
    id=1004,
    province='河北',
    city='保定',
    amount=100,
)])

data = df.groupby(by=['province'])['amount'].sum(axis=0)
print(data)

输出:

province
河北    200
河南    200
Name: amount, dtype: int64

我希望增加一列,形成如下输出:

alias    province
省销售    河北        100
省销售    河南    200
Name: amount, dtype: int64

请问如何实现?

假设我要将列名称重新定义,并将形成扁平的数据,如何实现成为这种字典(我需要去循环 pandas 的统计结果,生成 sql 语句):

统计项      省份   城市     值
省市销售    河北   保定     200
省市销售    河南   郑州     100
省市销售    河南   安阳     100

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

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

发布评论

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

评论(1

很快妥协 2022-09-19 03:08:17
  • 在分组后得到一个 DataFrame 的结果

传入 as_index=False 参数, province 不会被设置为索引,得到的结果是 DataFrame

data = df.groupby(by=['province'], as_index=False)['amount'].sum()

image.png

  • 添加列
data['alias'] = '省销售'
  • 重命名
data = data.rename(columns={'alias':'统计项', 'province':'省份', 'amount':'值'})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文