uday
uday

Reputation: 6723

to make pydata handle string columns

I have a dataframe that has a few columns with floats and a few columns that are string. All columns have nan. The string columns have either strings or nan which appear to have a type float. When I try to 'df.to_hdf' to store the dataframe, I get the following error:

your performance may suffer as PyTables will pickle object types that it cannot map directly to c-types [inferred_type->mixed,key->block0_values] [items->['operation', 'snl_datasource_period', 'ticker', 'cusip', 'end_fisca_perio_date', 'fiscal_period', 'finan_repor_curre_code', 'earni_relea_date', 'finan_perio_begin_on']]

How can I work around it?

Upvotes: 0

Views: 139

Answers (1)

Stephen Pascoe
Stephen Pascoe

Reputation: 478

You can fill each column with the appropriate missing value. E.g.

import pandas as pd
import numpy as np

col1 = [1.0, np.nan, 3.0]
col2 = ['one', np.nan, 'three']

df = pd.DataFrame(dict(col1=col1, col2=col2))
df['col1'] = df['col1'].fillna(0.0)
df['col2'] = df['col2'].fillna('')

df.to_hdf('eg.hdf', 'eg')

Upvotes: 1

Related Questions