![](/img/trans.png)
[英]Create a new Column based on the latest column with a value on a dataframe - Pandas
[英]Create a new column in pandas dataframe using column and its value
采用:
df1 = df.filter(like='attr')
df = df.drop(df1.columns, axis=1)
df['var'] = df1.dot(df1.columns + ' ').str.rstrip()
print (df)
id var
0 1 attr1 attr3 attr4
1 2 attr1 attr2 attr3 attr4
2 3 attr2 attr3 attr4
3 4 attr4
說明 :
filter
器過濾列-僅屬性列 drop
DataFrame.dot
按列進行矩陣乘法 rstrip
刪除最后一個空格 替代解決方案:
cols = df.columns[df.columns.str.startswith('attr')]
df = df.drop(cols, axis=1).assign(var=df[cols].dot(cols + ' ').str.rstrip())
print (df)
id var
0 1 attr1 attr3 attr4
1 2 attr1 attr2 attr3 attr4
2 3 attr2 attr3 attr4
3 4 attr4
要恢復str.get_dummies
使用str.get_dummies
:
df1 = df.join(df.pop('var').str.get_dummies(' '))
print (df1)
id attr1 attr2 attr3 attr4
0 1 1 0 1 1
1 2 1 1 1 1
2 3 0 1 1 1
3 4 0 0 0 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.