簡體   English   中英

python pandas dataframe:轉換一列並將其附加到末尾

[英]python pandas dataframe: transform a column and append it to the end

我有以下代碼,嘗試轉換列 v2,並添加一個新列:

df = pd.read_csv('test1.csv')
for index, row in df.iterrows():
    v4 = myFunction.classify(row['v2'])
    row['v4'] = v4
    row.append(v4)

但是,行row.append(v4)不起作用。 將 v4 附加到每一行的正確方法是什么? 謝謝!

目前,df 看起來像:

   v1      v2  v3  result
0  12     Dog  31       0
1  34    Frog   4       1
2  32   Snake   5       1
3   7     Cat   2       0

並且預期的新 df 應該是:

   v1      v2  v3  result   v4
0  12     Dog  31       0   Mammal
1  34   Eagle   4       1   Bird
2  32   Snake   5       1   Reptile
3   7     Cat   2       0   Mammal

你的函數可以接受一列並輸出一列嗎? 如果是這樣,您不需要迭代您的 df。 只需傳入一列並將輸出分配給 v4。

v4 = myFunction.classify(df['v2'])
df['v4'] = v4

如果您的函數需要單獨的輸入,則首先創建列“v4”,然后替換您在行上迭代的值。 同樣,您不需要在此處追加。

單個輸入情況下的另一個選擇是使用 python 內置 map() 將您的函數應用於 df['v2'] 的整個列,然后如上所述分配該輸出。

df['v4'] = map(myFunction.classify, df['v2'])

嘗試了幾種方法,我相信迄今為止最好的方法如下:

df['v4'] = df['v2'].apply(myFunction.classify)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM