Let say my df:
A User1 User2
1 0 0
2 1 1
3 1 0
And I want create another column in dataframe that was sum of column user1
plus user
So it's easy: df['sum_result_Newcolum'] = df['user1']+df['user2']
. So it looks like this:
A User1 User2 sum_result_Newcolum
1 0 0 0
2 1 1 2
3 1 0 1
But I have panda.series look like this:
0
0 AC.IR
1 AC.PO
2 B.0
3 B.1
end etc. So I want create for
statement there run through pd.series and add value to column name. So that issue, I try something like this without any success:
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']
All time best result is column name: "sum_result_Action..."
Maybe solution convert pd.series to frame?
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 | User1 | User2 | 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 |
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.