为dataframe python列中的每个唯一值创建excel工作表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为dataframe python列中的每个唯一值创建excel工作表相关的知识,希望对你有一定的参考价值。
我有一个非常大的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”列的位置,因为它一直在说它超出范围。任何的建议都受欢迎!
非常感谢!
答案
你应该能够在熊猫中使用groupby来实现这一目标。例如 ...
with pd.ExcelWriter("data_by_month.xlsx") as writer:
for period, data in df.groupby('Period'):
data.to_excel(writer, sheet_name = period)
以上是关于为dataframe python列中的每个唯一值创建excel工作表的主要内容,如果未能解决你的问题,请参考以下文章
如何创建键字典:column_name 和 value:来自数据框的 python 中的列中的唯一值