python - 如何使用pandas python根据给定的IP地址将大型excel文件拆分为多个工作表

标签 python excel pandas

我是 pandas 和 python 的新手,所以遇到了一些麻烦。我有一个大的 excel 文件,我需要使用 python 脚本将其分成多个工作表。我必须根据数据中给出的 IP 地址进行划分。我无法弄清楚如何做到这一点,并希望得到一些帮助和指导。
我以前不知道使用 python 或任何库。这就是我所做的,但为每一行创建了工作簿。

import pandas as pd
df = pd.read_excel("D:/Users/Zakir/Desktop/MyNotebooks/Legacy.xls", sheet_name="Total", header=0, names=None, index_col=None, parse_cols=None, usecols=None, squeeze=False, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, comment=None, skipfooter=0, convert_float=True, mangle_dupe_cols=True)

writer = pd.ExcelWriter('D:/Users/Zakir/Desktop/MyNotebooks/pandas_simple.xlsx', engine='xlsxwriter')
for index, row in df.iterrows():
    df1 = df.iloc[[index]]
    df1.set_index('Number',inplace=True)
    df1.to_excel(writer,  sheet_name=row['IPAddress'])
writer.save()

This is the kind of excel file i have. over 5000 rows. There are 60 groups of ip addresses and have to divide each group into its own worksheet

最佳答案

如果您有足够的内存,一种解决方案:

from pandas import ExcelWriter
df = pd.read_excel('file',sheet_name="Total", header=0, #other settings.....#)
writer = ExcelWriter('E:/output.xlsx',engine='xlsxwriter')
print(df)
def writesheet(g):
    a = g['IPAddress'].tolist()[0]
    g.to_excel(writer, sheet_name=str(a), index=False)# index = True if you want to keep index


df.groupby('IPAddress').apply(writesheet)
writer.save()

关于python - 如何使用pandas python根据给定的IP地址将大型excel文件拆分为多个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54996477/

相关文章:

python - Pandas 。将重复的行删除到另一个数据框

excel - 如何使用 Excel 在公式中引用值而不是公式?

excel - 使用 Shell 从 excel vba 运行 python 脚本不会执行任何操作

python - 将 Pandas 数据框与其他数据框的因子相乘

python /matplotlib : imposed ticks with ticker partially missing

python - 如何定义 "MODULE DOCS"以便用 pydoc 显示?

python - 什么是好的 Python 亵渎过滤器库?

vba - 在 Excel 工作簿中搜索特定字符串

Python Reindex 生成 Nan

python - 使用 Pandas 将列值聚合到序列中