Rhys Miller
Rhys Miller

Reputation: 11

savWriter writerows with Dataframe

I am trying to use the savReaderWriter library with Python. I have a dataframe which is read in via df = pd.read_csv. However using the following piece of code it won't seem to write the rows to the file.

with savReaderWriter.SavWriter(savFileName, *args) as writer:
writer.writerows(df)

I am getting the following error TypeError: 'str' object does not support item assignment.Any help is greatly appreciated.

Upvotes: 0

Views: 1204

Answers (1)

王晓晨
王晓晨

Reputation: 336

This is the sample on https://pythonhosted.org/savReaderWriter/

savFileName = 'someFile.sav'
records = [[b'Test1', 1, 1], [b'Test2', 2, 1]]
varNames = ['var1', 'v2', 'v3']
varTypes = {'var1': 5, 'v2': 0, 'v3': 0}
with savReaderWriter.SavWriter(savFileName, varNames, varTypes) as writer:
    for record in records:
        writer.writerow(record)

I think you can divide you DataFrame into 3 fields(records, varNames, varTypes) By the way, you can use method in pandas to write data into file.

import pandas as pd

sensor_values = pd.DataFrame([[1,'aaa','bbb'],[2,'ppp','xxx']], columns=['A','B','C']) 
varNames=sensor_values.columns
records = sensor_values.values
varType = {key: 0 for x, key in enumerate(sensor_values.columns)}

Upvotes: 2

Related Questions