为dataframe python列中的每个唯一值创建excel工作表

问题描述 投票:0回答:1

我有一个非常大的CSV文件,包含250,000多条记录,需要一段时间才能在Excel中进行任何分析,因此我希望根据我在pandas中创建的特定计算列将其拼接成多个工作表。

特定列称为“Period”,并且是我的数据帧中的字符串变量,形式为MMM_YYYY(例如,Jan_2016,Feb_2016等)

我正在尝试创建一个具有工作簿(我们称之为data_by_month.xlsx)的内容,其中包含数据框列“Period”中每个唯一句点的工作表,其中所有匹配的行都写入相应的工作表。

这是我尝试的逻辑:

for row in df:
    for period in unique_periods:
        if row[38] == period:
            with pd.ExcelWriter("data_by_month.xslx") as writer:
                df.to_excel(writer, sheet_name = period)

这背后的想法是对于数据帧中的每一行,遍历一个唯一周期列表中的每个周期,如果行[38] - 它是Period的索引 - 等于一个周期,则将其写入将data_by_month.xlsx工作簿转换为特定的工作表。

我知道我的代码现在完全不正确,但这是我一直试图实现的一般逻辑。我很确定我在数据框中错误地引用了“Period”列的位置,因为它一直在说它超出范围。任何的建议都受欢迎!

非常感谢!

python excel pandas
1个回答
1
投票

你应该能够在熊猫中使用groupby来实现这一目标。例如 ...

with pd.ExcelWriter("data_by_month.xlsx") as writer:
    for period, data in df.groupby('Period'):
        data.to_excel(writer, sheet_name = period)
© www.soinside.com 2019 - 2024. All rights reserved.