[英]assign column names in pandas from pd.series an loop
假設我的 df:
A User1 User2
1 0 0
2 1 1
3 1 0
我想在 dataframe 中創建另一列,它是列user1
加上user
的總和所以很簡單: df['sum_result_Newcolum'] = df['user1']+df['user2']
。 所以它看起來像這樣:
A User1 User2 sum_result_Newcolum
1 0 0 0
2 1 1 2
3 1 0 1
但我有 panda.series 看起來像這樣:
0
0 AC.IR
1 AC.PO
2 B.0
3 B.1
結束等所以我想for
語句在那里運行通過 pd.series 並將值添加到列名。 所以那個問題,我嘗試這樣的事情但沒有成功:
df['sum_result_'+ {cv_details.get(0)}]=df['user1']+df['user2']
df['sum_result_'+ cv_details.get(0)]=df['user1']+df['user2']
df['sum_result_'+ cv_details[0]]=df['user1']+df['user2']
df['sum_result_'+ cv_details.iloc[0]]=df['user1']+df['user2']
所有時間最好的結果是列名:“sum_result_Action ...”
也許解決方案將 pd.series 轉換為框架?
import io
import pandas as pd
df = pd.read_csv(io.StringIO("""A User1 User2
1 0 0
2 1 1
3 1 0"""), sep="\s+")
cv_details = pd.Series(['AC.IR', 'AC.PO', 'B.0', 'B.1'])
df.assign(**{f"sum_result_{v}":df["User1"]+df["User2"] for v in cv_details})
A | 用戶1 | 用戶2 | sum_result_AC.IR | sum_result_AC.PO | sum_result_B.0 | sum_result_B.1 | |
---|---|---|---|---|---|---|---|
0 | 1個 | 0 | 0 | 0 | 0 | 0 | 0 |
1個 | 2個 | 1個 | 1個 | 2個 | 2個 | 2個 | 2個 |
2個 | 3個 | 1個 | 0 | 1個 | 1個 | 1個 | 1個 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.