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

时间:2019-03-18 18:36:39

标签: python excel pandas

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

特定列称为“句点”,是我数据框中的字符串变量,格式为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)

其背后的思想是针对数据帧中的每一行,遍历唯一周期列表中的每个周期,如果row [38](即Period的索引)等于一个周期,则写将其放入data_by_month.xlsx工作簿,并将其放入特定的工作表中。

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

非常感谢您!

1 个答案:

答案 0 :(得分: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)