簡體   English   中英

在 pandas dataframe 列上迭代並根據條件創建一個新列

[英]Iterate on a pandas dataframe column and create a new column based on condition

我是 Pandas 的新手,我在開發代碼時遇到了一些問題。 我有一個 pandas dataframe 像這樣: 在此處輸入圖像描述

我想要做的是創建一個新列“每米重量”,然后檢查“設計部分”列中的每個元素,如果該元素等於“部分名稱”列中的元素之一,則“每米重量”的值" 列將是“每單位長度的重量”中的相應元素。 像這樣的一些事情:

在此處輸入圖像描述

我該怎么做?

您可以使用 map 或合並。 如果您的基礎 dataframe 稱為df ,則:

df['Weight per meter'] = df['Design Section'].map(df[['Section Name','Weight Per Unit Length']].set_index('Section Name').to_dict()['Weight Per Unit Length'])

或合並:

df['Weight per meter'] = df[['Design Section']].merge(df[['Section Name','Weight Per Unit Length']].drop_duplicates(),left_on='Design Section',right_on='Section Name',how='left')['Weight Per Unit Length

例如:

df = pd.DataFrame({'Col 1':['A','B','C','D','E'],
                   'Col 2':[1,2,3,4,5],
                   'Col 3':['G','B','C','D','F']})

df['Col 4'] = df['Col 3'].map(df[['Col 1','Col 2']].set_index('Col 1').to_dict()['Col 2'])

回報:

  Col 1  Col 2 Col 3  Col 4
0     A      1     G    NaN
1     B      2     B    2.0
2     C      3     C    3.0
3     D      4     D    4.0
4     E      5     F    NaN

暫無
暫無

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

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