python - “系列”对象是可变的,因此它们不能被散列错误调用 to_csv

标签 python csv pandas immutability

我有一个大型数据框(5 天,每秒一个值,几列),我想使用 python pandas df.to_csv 模块将其中的 2 列保存在 csv 文件中。

我尝试了不同的方法,但总是收到错误消息:

“系列”对象是可变的,因此它们不能被散列

我找到了一个与 groupby 相关但与文件保存无关的解决方案。 有人对我有想法吗?

这是我的数据框的一部分:

DateTime
2015-07-14 00:00:00    414.37
2015-07-14 00:00:00    414.37
2015-07-14 00:00:01    414.29
2015-07-14 00:00:02    414.14
2015-07-14 00:00:03    414.21
2015-07-14 00:00:04    414.05
2015-07-14 00:00:05    414.05
2015-07-14 00:00:06     414.2
2015-07-14 00:00:07    414.54
2015-07-14 00:00:08    414.39
Name: CO2abs, dtype: object DateTime

编辑: 抱歉 - 忘记密码了...

df.to_csv('alldatcorr.csv',sep='\t',cols=(df.CO2abs,df.CO2corr))

最佳答案

你的错误是因为你传递了一个系列的元组而不是一个列名/字符串的元组:

df.to_csv('alldatcorr.csv',sep='\t',cols=(df.CO2abs,df.CO2corr))

所以你发现这行得通:

df.to_csv('corr2.csv',sep='\t',cols=('CO2abs','CO2corr'))

您可以通过传递列表并使用下标运算符从 df 中进行子选择来避免歧义:

df[['CO2abs','CO2corr']].to_csv('corr2.csv',sep='\t')

此外,传递字符串列表而不是元组可能更具可读性

关于python - “系列”对象是可变的,因此它们不能被散列错误调用 to_csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32568012/

相关文章:

python : error handling Ordered dict with unicode data

python - 在python中通过子字符串匹配两个数据帧

python - 用于网络抓取的 requests.post 脚本不起作用

python - 我得到 : "object does not support item assignment" when populating a dictionary

python - 将 HDF 数据集加载到 python 中,但它被识别为空

python-3.x - Python 中的大型 XML 文件解析

python - 为什么验证形式不起作用?

python - 如何将for循环中的结果写入多个CSV文件

c++ - 使用 token 仅解析 csv 文件中的特定列

python - Pandas:连接具有意外行为的数据帧