数据帧中的 HDFStore 输出不是系列
HDFStore output in dataframe not series
我想将读入的两个表存储在数据框中。
我正在将 h5 文件读入我的代码:
with pd.HDFStore(directory_path) as store:
self.df = store['/raw_ti4404']
self.hr_df = store['/metric_heartrate']
self.df 被存储为数据框,但 self.hr_df 被存储为系列。
我用同样的方式称呼它们,我不明白为什么一个是数据框而另一个是系列。这可能与数据的存储方式有关:
任何有关如何将 metric_heartrate 存储为数据框的帮助都将不胜感激。
很可能 metric_heartrate
存储为系列。
演示:
生成样本DF:
In [123]: df = pd.DataFrame(np.random.rand(10, 3), columns=list('abc'))
In [124]: df
Out[124]:
a b c
0 0.404338 0.010642 0.686192
1 0.108319 0.962482 0.772487
2 0.564785 0.456916 0.496818
3 0.122507 0.653329 0.647296
4 0.348033 0.925427 0.937080
5 0.750008 0.301208 0.779692
6 0.833262 0.448925 0.553434
7 0.055830 0.267205 0.851582
8 0.189788 0.087814 0.902296
9 0.045610 0.738983 0.831780
In [125]: store = pd.HDFStore('d:/temp/test.h5')
让我们将 a
列存储为系列:
In [126]: store.append('ser', df['a'], format='t')
让我们存储一个只包含一列的 DataFrame - a
:
In [127]: store.append('df', df[['a']], format='t')
正在从 HDFStore 读取数据:
In [128]: store.select('ser')
Out[128]:
0 0.404338
1 0.108319
2 0.564785
3 0.122507
4 0.348033
5 0.750008
6 0.833262
7 0.055830
8 0.189788
9 0.045610
Name: a, dtype: float64
In [129]: store.select('df')
Out[129]:
a
0 0.404338
1 0.108319
2 0.564785
3 0.122507
4 0.348033
5 0.750008
6 0.833262
7 0.055830
8 0.189788
9 0.045610
修复 - 读取系列并将其转换为 DF:
In [130]: store.select('ser').to_frame('a')
Out[130]:
a
0 0.404338
1 0.108319
2 0.564785
3 0.122507
4 0.348033
5 0.750008
6 0.833262
7 0.055830
8 0.189788
9 0.045610
我想将读入的两个表存储在数据框中。
我正在将 h5 文件读入我的代码:
with pd.HDFStore(directory_path) as store:
self.df = store['/raw_ti4404']
self.hr_df = store['/metric_heartrate']
self.df 被存储为数据框,但 self.hr_df 被存储为系列。
我用同样的方式称呼它们,我不明白为什么一个是数据框而另一个是系列。这可能与数据的存储方式有关:
任何有关如何将 metric_heartrate 存储为数据框的帮助都将不胜感激。
很可能 metric_heartrate
存储为系列。
演示:
生成样本DF:
In [123]: df = pd.DataFrame(np.random.rand(10, 3), columns=list('abc'))
In [124]: df
Out[124]:
a b c
0 0.404338 0.010642 0.686192
1 0.108319 0.962482 0.772487
2 0.564785 0.456916 0.496818
3 0.122507 0.653329 0.647296
4 0.348033 0.925427 0.937080
5 0.750008 0.301208 0.779692
6 0.833262 0.448925 0.553434
7 0.055830 0.267205 0.851582
8 0.189788 0.087814 0.902296
9 0.045610 0.738983 0.831780
In [125]: store = pd.HDFStore('d:/temp/test.h5')
让我们将 a
列存储为系列:
In [126]: store.append('ser', df['a'], format='t')
让我们存储一个只包含一列的 DataFrame - a
:
In [127]: store.append('df', df[['a']], format='t')
正在从 HDFStore 读取数据:
In [128]: store.select('ser')
Out[128]:
0 0.404338
1 0.108319
2 0.564785
3 0.122507
4 0.348033
5 0.750008
6 0.833262
7 0.055830
8 0.189788
9 0.045610
Name: a, dtype: float64
In [129]: store.select('df')
Out[129]:
a
0 0.404338
1 0.108319
2 0.564785
3 0.122507
4 0.348033
5 0.750008
6 0.833262
7 0.055830
8 0.189788
9 0.045610
修复 - 读取系列并将其转换为 DF:
In [130]: store.select('ser').to_frame('a')
Out[130]:
a
0 0.404338
1 0.108319
2 0.564785
3 0.122507
4 0.348033
5 0.750008
6 0.833262
7 0.055830
8 0.189788
9 0.045610