1

新しい HDFStore を作成し、その中に何かを入れます。

In [1]: store = pd.HDFStore('data.h5')

In [2]: store
Out[2]: 
<class 'pandas.io.pytables.HDFStore'>
File path: data.h5
Empty

In [3]: store['a'] = Series([1, 2])

In [4]: store
Out[4]: 
<class 'pandas.io.pytables.HDFStore'>
File path: data.h5
/a            series       (shape->[2])

In [5]: store.close()

In [6]: exit

IPython を再起動すると、「誤って」このシナリオで、間違ったディレクトリからストアを開こうとします。

In [1]: cd some_directory
/home/dallan/some_directory

In [2]: store = pd.HDFStore('data.h5')

おっとっと!私の間違いに気づき、正しいディレクトリに移動し、正しいディレクトリに座っている間に変数をcd再割り当てします。store

In [3]: cd
/home/dallan

In [4]: store = pd.HDFStore('data.h5')

In [5]: store
Out[5]: 
<class 'pandas.io.pytables.HDFStore'>
File path: data.h5
Empty

In [6]: exit

私の質問: ここで何が起こったのですか? 誤って間違ったディレクトリからストアにアクセスしようとした後、正しいディレクトリからストアを開くことができないのはなぜですか? 以下では、最初に間違ったディレクトリで開かずにファイルを開くと、実際にはそこにあり、すべてがうまくいっていることがわかります。

In [1]: store = pd.HDFStore('data.h5')

In [2]: store
Out[2]: 
<class 'pandas.io.pytables.HDFStore'>
File path: data.h5
/a            series       (shape->[2])

これはある種の文脈上の問​​題ですか?私は途方に暮れています。この不注意な間違いは、私が集団意識に陥るほど頻繁に起こります。ありがとう!


更新しました

これは HDFStore のバグだと思います。cd正しく動作しているようです。これが CSV で正常に機能することを確認してください。

In [1]: Series([1, 2]).to_csv('test.txt')

In [2]: exit

In [1]: cd some_directory/
/home/dallan/some_directory

In [2]: s = pd.read_csv('test.txt')
(...) IOError: File test.txt does not exist

In [3]: cd
/home/dallan

In [4]: s = pd.read_csv('test.txt')

In [5]: s
Out[5]: 
   0  1
0  1  2

Jeff の提案に従って試してみると!cd、予期しない IPython の動作が明らかになりました。

In [1]: pwd
Out[1]: u'/home/dallan'

In [2]: !cd some_directory/

In [3]: pwd
Out[3]: u'/home/dallan'

In [4]: !cd /home/dallan/some_directory/

In [5]: pwd
Out[5]: u'/home/dallan'

In [6]: cd some_directory/
/home/dallan/some_directory

In [7]: pwd
Out[7]: u'/home/dallan/some_directory'
4

0 に答える 0