【问题标题】:Concurrently write pandas DataFrame to xlsx同时将 pandas DataFrame 写入 xlsx
【发布时间】:2017-12-22 02:56:50
【问题描述】:

我有一个DataFrame,需要根据特定列进行分段并写入不同的excel文件...

df = pd.DataFrame(np.arange(28).reshape((7, 4)))

df['group'] = ['a', 'a', 'c', 'c', 'd', 'd', 'e']


    0   1   2   3   group
0   0   1   2   3   a
1   4   5   6   7   a
2   8   9   10  11  c
3   12  13  14  15  c
4   16  17  18  19  d
5   20  21  22  23  d
6   24  25  26  27  e

基于group列我需要拆分并写入xlsx文件...我目前使用

for group in list(df['group'].unique()):
    group_df = df[df['group'] == group]
    group_df.to_excel(some_path)

有没有办法我可以同时执行此操作,而不是使用 for 循环??

【问题讨论】:

  • 我不确定并行执行会更快,除非您正在写入 SSD 磁盘或适当的存储系统或分布式文件系统...
  • 不一定要使用并发来加速,但可以通过使用.groupby()方法来加速操作...for name, group in df.groupby('group'):

标签: excel python-3.x pandas save


【解决方案1】:

有点。您仍然需要一个 for 循环来分解为各个线程。

话虽如此,在这里使用并发不会带来任何性能提升。您没有外部阻塞 API,而且您的操作肯定是 IO 限制而不是 CPU。

【讨论】:

    猜你喜欢
    • 2019-07-11
    • 2017-01-29
    • 2013-05-31
    • 2019-07-06
    • 2020-06-12
    • 1970-01-01
    • 2020-06-20
    相关资源
    最近更新 更多