我有以下代碼
我正在嘗試使用insert方法將新列作為特定位置插入。下面是我的代碼,
import pandas as pd
(pd.DataFrame({'product name': ['laptop', 'printer', 'printer',], 'price': [1200, 150, 1200], 'price1': [1200, 150, 1200]})
.insert(0, 'AAA', -1)
.insert(1, 'BBB', -2)
)
有了這個我得到以下錯誤,
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'insert'
>>>
您能否幫助解決此錯誤。
任何指標都受到高度贊賞。
uj5u.com熱心網友回復:
錯誤原因
DataFrame.insert是修改原始資料幀并回傳的就地None操作。在呼叫第一個insert操作后,回傳值None因此是下一個insert拋出一個錯誤,抱怨'NoneType' object has no attribute 'insert'.
解決方案
df = pd.DataFrame({'product name': ['laptop', 'printer', 'printer',], 'price': [1200, 150, 1200], 'price1': [1200, 150, 1200]})
df.insert(0, 'AAA', -1)
df.insert(1, 'BBB', -2)
哈克解決方案
df.pipe(lambda x: x.insert(0, 'AAA', -1) or x.insert(1, 'BBB', -2) or x)
uj5u.com熱心網友回復:
insert 方法不回傳資料框物件。您可以將資料框物件分配給變數并將插入方法應用于變數:
df = pd.DataFrame({'product name': ['laptop', 'printer', 'printer',],
'price': [1200, 150, 1200],
'price1': [1200, 150, 1200]})
df.insert(0, 'AAA', -1)
df.insert(1, 'BBB', -2)
您也可以使用 join 將其包含在鏈中,但您必須知道行數:
pd.DataFrame({'AAA': [-1] * 3})\
.join(pd.DataFrame({'BBB': [-2] * 3}))\
.join(pd.DataFrame({'product name': ['laptop', 'printer', 'printer', ],
'price': [1200, 150, 1200],
'price1': [1200, 150, 1200]}))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/475038.html
標籤:python-3.x 熊猫
上一篇:替換字典串列中的專案
下一篇:如何注釋回傳其引數的函式
