Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah cara saya memasukkan senarai dengan berkesan ke dalam sel tertentu Pandas DataFrame?

Bagaimanakah cara saya memasukkan senarai dengan berkesan ke dalam sel tertentu Pandas DataFrame?

DDD
DDDasal
2024-10-30 07:47:28615semak imbas

How do I effectively insert a list into a specific cell of a Pandas DataFrame?

Python panda: Memasukkan Senarai ke dalam Sel

Apabila bekerja dengan bingkai data, selalunya perlu melaraskan kandungan individu sel. Dalam kes ini, tugasnya adalah untuk memasukkan senarai tertentu, 'abc', ke dalam sel 1B dalam bingkai data. Pelbagai percubaan telah dibuat, tetapi masing-masing telah menghadapi cabarannya sendiri.

Pada mulanya, percubaan untuk menetapkan keseluruhan senarai terus ke sel menggunakan df.ix[1,'B'] = abc mengakibatkan ValueError disebabkan oleh ketidakpadanan dalam bilangan kunci dan nilai. Menggunakan df.ix[1,'B'] = [abc] sebaliknya mencipta senarai dengan senarai 'abc' sebagai elemen tunggalnya, yang tidak diingini.

Menukar senarai kepada rentetan menggunakan df. ix[1,'B'] = ', '.join(abc) menghasilkan kandungan yang dimaksudkan sebagai rentetan dan bukannya senarai. Begitu juga, menggunakan df.ix[1,'B'] = [', '.join(abc)] mencipta senarai dengan elemen rentetan tunggal.

Percubaan seterusnya untuk memasukkan senarai ke dalam bingkai data dengan lebih kompleks jenis lajur, yang melibatkan kedua-dua integer dan rentetan, menghadapi ralat. Ini menunjukkan bahawa isu ini terletak pada jenis data bercampur lajur.

Untuk menyelesaikan masalah ini, disyorkan untuk menggunakan atribut at bukannya loc. Kaedah ini secara konsisten merujuk kepada satu nilai, mengelakkan isu yang dihadapi dengan loc. Selain itu, memastikan lajur yang dimasukkan ke dalam mempunyai dtype=object menghalang ralat selanjutnya.

Sebagai contoh, kod berikut berjaya memasukkan senarai 'abc' ke dalam sel 1B bingkai data df2:

import pandas as pd

abc = ['foo', 'bar']
df2 = pd.DataFrame(data={'A': [12, 23], 'B': [None, None], 'C': ['bla', 'bla bla']})

df2['B'] = df2['B'].astype('object')  # Ensure 'B' has dtype=object
df2.at[1, 'B'] = abc

print(df2)

Output:

   A   B         C
0  12  NaN      bla
1  23  [foo, bar]  bla bla

Atas ialah kandungan terperinci Bagaimanakah cara saya memasukkan senarai dengan berkesan ke dalam sel tertentu Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn