Pandas: ValueError: tidak dapat menyetel flag yang DAPAT DITULIS ke True dari larik ini

Dibuat pada 19 Jan 2019  ·  16Komentar  ·  Sumber: pandas-dev/pandas

perlu mengembalikan dekorator xfail di: https://github.com/pandas-dev/pandas/pull/25517 saat ini diperbaiki

Contoh Kode, contoh copy-paste jika memungkinkan

Tiba-tiba saya mendapatkan kesalahan ini, ada ide?

# Your code here
 input_df = pd.read_hdf(path_or_buf='x.hdf5',key='/x',mode='r')

Deskripsi masalah

Melacak kembali :
` Traceback (most recent call last): File "...", line 115, in <module> input_df = pd.read_hdf(path_or_buf='x.hdf5',key='/x',mode='r') File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 394, in read_hdf return store.select(key, auto_close=auto_close, **kwargs) File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 741, in select return it.get_result() File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 1483, in get_result results = self.func(self.start, self.stop, where) File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 734, in func columns=columns) File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 2937, in read start=_start, stop=_stop) File "/usr/local/lib/python3.6/dist-packages/pandas/io/pytables.py", line 2489, in read_array ret = node[0][start:stop] File "/usr/local/lib/python3.6/dist-packages/tables/vlarray.py", line 681, in __getitem__ return self.read(start, stop, step)[0] File "/usr/local/lib/python3.6/dist-packages/tables/vlarray.py", line 821, in read listarr = self._read_array(start, stop, step) File "tables/hdf5extension.pyx", line 2155, in tables.hdf5extension.VLArray._read_array ValueError: cannot set WRITEABLE flag to True of this array

Bug Dependencies IO HDF5

Komentar yang paling membantu

Saat menggunakan numpy = 1.16.0 saya mendapatkan error ini, saat downgrade numpy = 1.15.4 masalah hilang

Semua 16 komentar

@ macd2 : Terima kasih telah melaporkan ini! Beberapa hal:

  • Dalam terbitan ini, dapatkah Anda memberikan informasi lingkungan dari pandas.show_versions ?
  • Dengan asumsi Anda bisa, apakah Anda keberatan membagikan file yang memicu kesalahan ini?

Tiba-tiba saya mendapatkan kesalahan ini, ada ide?

  • Sepertinya ini berhasil untuk Anda pada versi pandas . Kapan kode ini terakhir kali berfungsi untuk Anda? Versi apa yang Anda gunakan sekarang (terkait dengan pertanyaan pertama)?

cc @ kembali

Saat menggunakan numpy = 1.16.0 saya mendapatkan error ini, saat downgrade numpy = 1.15.4 masalah hilang

@gfyoung Tentu ini adalah Versi:
`` pandas.show_versions
'ketergantungan':
{'pandas': '0.23.4', 'pytest': '3.4.0', 'pip': '18 .1 ',' setuptools ': '40 .6.3', 'Cython': '0.29.3', ' numpy ':' 1.16.0 ',' scipy ':' 1.2.0 ',' pyarrow ': Tidak ada,' xarray ': Tidak ada,' IPython ':' 6.5.0 ',' sphinx ': Tidak ada,' patsy ' : '0.5.0', 'dateutil': '2.7.5', 'pytz': '2018.7', 'blosc': Tidak ada, 'bottleneck': '1.2.1', 'tables': '3.4.4' , 'numexpr': '2.6.8', 'feather': Tidak ada, 'matplotlib': '3.0.2', 'openpyxl': '2.5.12', 'xlrd': '1.1.0', 'xlwt' : '1.3.0', 'xlsxwriter': '0.7.3', 'lxml': '4.1.1', 'bs4': '4.4.1', 'html5lib': '1.0b8', 'sqlalchemy': '1.2.15', 'pymysql': '0.9.2', 'psycopg2': '2.7.6.1 (dt dec pq3 ext lo64)', 'jinja2': '2.10', 's3fs': Tidak ada, 'fastparquet' : Tidak ada, 'pandas_gbq': Tidak ada, 'pandas_datareader': '0.7.0'}

``

sayangnya saya tidak dapat membagikan file tetapi saya pikir masalahnya memang berasal dari numpy seperti yang dikatakan @vvvlc di sini adalah masalah lain di git mereka:

https://github.com/nipy/nibabel/issues/697

PS: just downgraded to numpy=1.15.4 and indeed it resolves the issue

Apakah ada yang bisa dilakukan panda untuk sementara? Atau tunggu saja selanjutnya
rilis pytables?

Pada hari Sen, 21 Jan 2019 pukul 5:34, macd2 [email protected] menulis:

@gfyoung https://github.com/gfyoung Tentu di sini adalah Versi:

'ketergantungan':
{'pandas': '0.23.4', 'pytest': '3.4.0', 'pip': '18 .1 ',' setuptools ': '40 .6.3', 'Cython': '0.29.3', ' numpy ':' 1.16.0 ',' scipy ':' 1.2.0 ',' pyarrow ': Tidak ada,' xarray ': Tidak ada,' IPython ':' 6.5.0 ',' sphinx ': Tidak ada,' patsy ' : '0.5.0', 'dateutil': '2.7.5', 'pytz': '2018.7', 'blosc': Tidak ada, 'bottleneck': '1.2.1', 'tables': '3.4.4' , 'numexpr': '2.6.8', 'feather': Tidak ada, 'matplotlib': '3.0.2', 'openpyxl': '2.5.12', 'xlrd': '1.1.0', 'xlwt' : '1.3.0', 'xlsxwriter': '0.7.3', 'lxml': '4.1.1', 'bs4': '4.4.1', 'html5lib': '1.0b8', 'sqlalchemy': '1.2.15', 'pymysql': '0.9.2', 'psycopg2': '2.7.6.1 (dt dec pq3 ext lo64)', 'jinja2': '2.10', 's3fs': Tidak ada, 'fastparquet' : Tidak ada, 'pandas_gbq': Tidak ada, 'pandas_datareader': '0.7.0'}

sayangnya saya tidak dapat membagikan file tetapi saya pikir masalahnya memang datang
dari numpy sebagai @vvvlc https://github.com/vvvlc mengatakan di sini adalah yang lain
masalah pada git mereka:

nipy / nibabel # 697 https://github.com/nipy/nibabel/issues/697

-
Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/pandas-dev/pandas/issues/24839#issuecomment-456043488 ,
atau nonaktifkan utasnya
https://github.com/notifications/unsubscribe-auth/ABQHIqiIyuE-lmMlN2Ep-4htyMrTBdefks5vFaWqgaJpZM4aJQqs
.

Bagi saya pip install numpy==1.15.4 juga menyelesaikan masalah ini.

@TomAugspurger masalah ini muncul di Google di atas (setidaknya bagi saya itu terjadi) dan tampaknya obatnya sederhana, jadi mungkin cukup menunggu perbaikan upstream. Sangat bagus bahwa Anda akan bertanya :)

pip3 install numpy==1.15.4 juga diselesaikan untuk saya ..

Namun, ketika saya menurunkan numpy saya terus mendapatkan kesalahan ini ImportError: No module named 'numpy.core._multiarray_umath' . Akhirnya saya tahu itu terjadi karena saya menyimpan file .h5 dengan numpy 1.16 diinstal dan tidak akan dibuka kembali dengan numpy yang diturunkan ...

Anda dapat menghindari kesalahan:
ValueError: cannot set WRITEABLE flag to True of this array
meneruskan format='table' menjadi HDFStore.append atau HDFStore.put saat Anda menyimpan data dengan panda.

Ini kemungkinan akan menyelesaikan masalah Anda, diuji dengan panda 0,24 dan numpy 1,16+

@ dev72
ok tapi bagaimana dengan file HDF lama yang sudah ada?

Menurut saya cara terbaik untuk membaca file hdf lama adalah dengan menurunkan versi pandas + versi numpy Anda, membaca semua data dan menuliskannya di toko hdf baru dengan format='table' .
Maka itu harus bekerja dengan versi numpy dan pandas yang lebih baru.

@ dev72 ya benar im pada titik yang sama, tetapi saya lebih suka tetap dengan downgrade sampai ini diperbaiki dengan benar

ya sama datang dari google, terima kasih telah mengajukan masalah ini @ macd2

Jadi setelah mencari beberapa masalah yang dikirimkan pada numpy dan PyTables posting ini oleh @avalentino akan menyarankan masalah ini diperbaiki di PyTables master tetapi belum dalam rilis.

https://github.com/PyTables/PyTables/issues/719#issuecomment -455612656

Adakah yang pernah mencoba menggunakan PyTables master w / numpy >= 0.16 ?

Saya membuatnya bekerja menggunakan ini

HDF5_DIR={HDF5_PATH} pip install -e git+https://github.com/PyTables/PyTables@492ee2f#egg=tables
pip install numpy==1.16.0

Pastikan cython dan hdf5 sudah diinstal.

Versi pytables dan numpy apa yang mereproduksi ini? Apakah ini khusus untuk data?

dengan

pandas: 0.24.1
numpy: 1.16.2
tables: 3.4.4

ini tidak naik,

In [8]: df = pd.DataFrame({"A": [1, 2]})

In [9]: df.to_hdf('x.hdf5', key='x')

In [10]: pd.read_hdf('x.hdf5', 'x', mode='r')
Out[10]:
   A
0  1
1  2

FYI, pytables 3.5.0 dan 3.5.1 ada di PyPI dengan perbaikan dari sisi pytables.

Mengupgrade ke pytables 3.5.1 memperbaiki masalah untuk saya juga dengan numpy 1.16.2

berurusan dengan tf 2.0.0 membutuhkan numpy (setidaknya) 1.16.0. menurunkan versi numpy ke versi sebelumnya tidak akan berfungsi pada tf 2.0.0

Apakah halaman ini membantu?
0 / 5 - 0 peringkat