Home > Software engineering >  Pandas object - save to .csv
Pandas object - save to .csv

Time:01-11

I have a pandas object df and I would like to save that to .csv:

df.to_csv('output.csv', index = False)

Even if the data frame is displayed right in the terminal after printing, in the *.csv some lines are shifted several columns forward. I do not know how to demonstrate that in the minimal working code. I tried that with the one problematic column, but the result of one column was correct in the *.csv. What should I check, please? The whole column contains strings.

After advice:

selected['SpType'] = selected['SpType'].str.replace('\t', '')

I obtained an error:

SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  selected['SpType'] = selected['SpType'].str.replace('\t', '')

CodePudding user response:

If the tabs are the problem, you could just replace all tabs.

If the tabs occur in column column_name you could do something like:

df['column_name'] = df['column_name'].str.replace('\t', '')

If the problem is in several columns, you could loop over all columns. eg.:

for col in df.columns:
    df[col] = df[col].str.replace('\t', '')

df.to_csv('output.csv', index = False)
  • Related