首頁  >  文章  >  後端開發  >  如何在 Python 中成功將清單插入 DataFrame 單元格?

如何在 Python 中成功將清單插入 DataFrame 單元格?

Patricia Arquette
Patricia Arquette原創
2024-10-29 18:50:02745瀏覽

How to Successfully Insert a List into a DataFrame Cell in Python?

將清單插入 DataFrame 中的單元格

在 Python pandas 中處理稀疏資料時,將清單插入特定單元格可能具有挑戰性。使用 df.ix[1,'B'] = abc 等常見方法嘗試此類操作通常會因密鑰長度不匹配而導致錯誤。

替代解決方案和限制

嘗試解決將列表括在附加方括號中(例如df.ix[1,'B'] = [abc])或使用字串表示形式(例如df.ix[1,'B'] = ', '.join (abc)) 並不令人滿意,因為它們引入了額外的元素或改變了預期的資料結構。

使用 df.at 進行列表插入

更有效的方法是使用 df.at 而不是df.ix 或 df.loc。 df.at 專門針對單一單元格,消除了可能導致上述錯誤的歧義。

<code class="python">import pandas as pd

# Create a dataframe with mixed data types
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': ['x', 'y', 'z']})

# Insert a list into cell 1B
df.at[1, 'B'] = ['m', 'n']

print(df)</code>

此操作成功將 ['m', 'n'] 插入單元格 1B,沒有任何錯誤。

確保列 Dtype 相容性

需要注意的是,要插入清單的列必須將其 dtype 設為「object」。如果該列具有不同的資料類型,例如“int64”,則會發生錯誤。為了解決這個問題,您可以在嘗試插入之前轉換列的資料類型:

<code class="python">df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [1,2,3]})
df['B'] = df['B'].astype('object')

# Now, list insertion will work as expected
df.at[1, 'B'] = [1, 2, 3]</code>

以上是如何在 Python 中成功將清單插入 DataFrame 單元格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn