如何将包含 bin 的 pandas 数据帧写入文件,以便将其读回 pandas?
How to write pandas dataframe containing bins to a file so it can be read back into pandas?
我有一个 pandas 数据框,格式如下:
df = pd.DataFrame({'a' : [0,1,2,3,4,5,6], 'b' : [-0.5, 0.0, 1.0, 1.2, 1.4, 1.3, 1.1]})
df['aBins'] = pd.cut(df['a'], bins = np.arange(0,10,2), include_lowest = True)
其中每个 bin 是一个间隔:
type(df['aBins'].iloc[0])
pandas._libs.interval.Interval
系列将它们存储为分类数据:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7 entries, 0 to 6
Data columns (total 3 columns):
a 7 non-null int64
b 7 non-null float64
aBins 7 non-null category
dtypes: category(1), float64(1), int64(1)
memory usage: 263.0 bytes
我正在尝试将此数据框另存为文件,以便可以轻松将其读回数据框。我曾尝试使用 .to_csv() 将其保存为 .csv 文件,但是当我将其读回 pandas 时,'aBins' 被作为字符串读入。
df.to_csv('test.csv', index = False)
df_reread = pd.read_csv('test.csv')
df_reread.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7 entries, 0 to 6
Data columns (total 3 columns):
a 7 non-null int64
b 7 non-null float64
aBins 7 non-null object
dtypes: float64(1), int64(1), object(1)
memory usage: 248.0+ bytes
是否有保存和重新读取此数据帧的好方法,以便可以在相同状态下将其读回 pandas?
您可能想看看 pandas.DataFrame.to_pickle
and pandas.read_pickle
:
>>> df.to_pickle("./test.pkl")
...
...
>>> df = pd.read_pickle("./test.pkl")
>>> type(df['aBins'].iloc[0])
pandas._libs.interval.Interval
我有一个 pandas 数据框,格式如下:
df = pd.DataFrame({'a' : [0,1,2,3,4,5,6], 'b' : [-0.5, 0.0, 1.0, 1.2, 1.4, 1.3, 1.1]})
df['aBins'] = pd.cut(df['a'], bins = np.arange(0,10,2), include_lowest = True)
其中每个 bin 是一个间隔:
type(df['aBins'].iloc[0])
pandas._libs.interval.Interval
系列将它们存储为分类数据:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7 entries, 0 to 6
Data columns (total 3 columns):
a 7 non-null int64
b 7 non-null float64
aBins 7 non-null category
dtypes: category(1), float64(1), int64(1)
memory usage: 263.0 bytes
我正在尝试将此数据框另存为文件,以便可以轻松将其读回数据框。我曾尝试使用 .to_csv() 将其保存为 .csv 文件,但是当我将其读回 pandas 时,'aBins' 被作为字符串读入。
df.to_csv('test.csv', index = False)
df_reread = pd.read_csv('test.csv')
df_reread.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7 entries, 0 to 6
Data columns (total 3 columns):
a 7 non-null int64
b 7 non-null float64
aBins 7 non-null object
dtypes: float64(1), int64(1), object(1)
memory usage: 248.0+ bytes
是否有保存和重新读取此数据帧的好方法,以便可以在相同状态下将其读回 pandas?
您可能想看看 pandas.DataFrame.to_pickle
and pandas.read_pickle
:
>>> df.to_pickle("./test.pkl")
...
...
>>> df = pd.read_pickle("./test.pkl")
>>> type(df['aBins'].iloc[0])
pandas._libs.interval.Interval