Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah cara saya memasukkan senarai dengan berkesan ke dalam sel tertentu Pandas DataFrame?
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!