【问题标题】:How can I seperate my dataframe according to a column values and export it to excel file? [duplicate]如何根据列值分离我的数据框并将其导出到 excel 文件? [复制]
【发布时间】:2020-01-27 00:37:25
【问题描述】:

我想根据 client_id 列分隔我的 df。然后,我想将它们中的每一个导出到不同的 excel 文件中。例如,我想要一个 Excel 文件,其中只包含 ID 号为 100 的客户端。另外,200、300 等也是如此。我该怎么做?

     id  employee_id company_name  client_id
0    A1            1            A        100
1    A2            2            A        100
2    A3            3            A        100
3    A4            4            A        100
4    B1            5            B        200
5    B2            6            B        200
6    B3            7            B        200
7    B4            8            B        200
8    B5            9            B        200
9    B6           10            B        200
10   B7           11            B        200
11   B8           12            B        200
12   C1           13            C        300
13   C2           14            C        300
14   C3           15            C        300
15   C4           16            C        300
16   C5           17            C        300
17   C6           18            C        300
18   C7           19            C        300
19   C8           20            C        300
20   C9           21            C        300
21  C10           22            C        300

I want to have this columns as an Excel file.

     id  employee_id company_name  client_id
0    A1            1            A        100
1    A2            2            A        100
2    A3            3            A        100
3    A4            4            A        100

Then following:

4    B1            5            B        200
5    B2            6            B        200
6    B3            7            B        200
7    B4            8            B        200
8    B5            9            B        200
9    B6           10            B        200
10   B7           11            B        200
11   B8           12            B        200

这是我的 df。我试过了:


for i in client_id:
    print(df[df.client_id == i])

我可以根据唯一值将它们分开,但我不知道如何存储它们并创建不同的 Excel 文件。

【问题讨论】:

  • 不过,您的方向是正确的。但为什么要存储它们?为什么不使用df[df.client_id == i].to_excel('file.xlsx') 直接将它们写入excel 文件?

标签: python pandas


【解决方案1】:

您可以利用 groupby。

group = df.groupby('client_id')

for key, df in group:
    df.to_excel(f'{key}.xlsx')

【讨论】:

  • 非常感谢!有效。我只是想知道你为什么在'{key}.xlsx'之前使用f
  • @dreamer f-strings 是格式化字符串的最新最好的方法。相比之下,所有先前的方法都很糟糕。 realpython.com/python-f-strings
猜你喜欢
  • 2021-08-05
  • 2018-08-30
  • 2020-06-11
  • 1970-01-01
  • 1970-01-01
  • 2020-02-10
  • 2013-11-04
  • 2015-12-05
  • 1970-01-01
相关资源
最近更新 更多