Reputation: 673
I have a large Dataframe (5 days with one value per second, several columns) of which I'd like to save 2 columns in a csv file with python pandas df.to_csv module.
I tried different ways but always get the error message:
'Series' objects are mutable, thus they cannot be hashed
which I found a solution for in connection with groupby but not with filesaving. Somebody has an idea for me?
Here a part of my Dataframe:
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
Edit: sorry - forgot the code...
df.to_csv('alldatcorr.csv',sep='\t',cols=(df.CO2abs,df.CO2corr))
Upvotes: 6
Views: 31244
Reputation: 394081
Your error comes about because you passed a tuple of Series rather than a tuple of column names/strings:
df.to_csv('alldatcorr.csv',sep='\t',cols=(df.CO2abs,df.CO2corr))
So you found that this worked:
df.to_csv('corr2.csv',sep='\t',cols=('CO2abs','CO2corr'))
you could've avoided the ambiguity by just sub-selecting from your df by passing a list and using the sub-script operator:
df[['CO2abs','CO2corr']].to_csv('corr2.csv',sep='\t')
Also it's probably more readable to pass a list of strings rather than a tuple
Upvotes: 5