添加新列作为后续列的总和
Adding new column as a sum of the subsquent columns
我有这个 df:
id car truck bus bike
0 1 1 0 0
1 0 0 1 0
2 1 1 1 1
我想向此 df 添加另一列 count
,但在 id
之后和 car
之前对行的值求和,如下所示:
id count car truck bus bike
0 2 1 1 0 0
1 1 0 0 1 0
2 4 1 1 1 1
我知道如何使用此代码添加列:
df.loc[:,'count'] = df.sum(numeric_only=True, axis=1)
但是上面的代码在最后一个位置添加了新列。
我该如何解决这个问题?
有几种方法。我这里提供了两种方式。
#1。创建 count
列后更改列顺序:
df.loc[:,'count'] = df.sum(numeric_only=True, axis=1)
df.columns = ['id', 'count', 'car', 'truck', 'bus', 'bike']
print(df)
# id count car truck bus bike
#0 0 2 1 1 0 0
#1 1 2 0 0 1 0
#2 2 6 1 1 1 1
#2。使用 insert function:
将系列插入特定位置
df.insert(1, "count", df.sum(numeric_only=True, axis=1))
print(df)
# id count car truck bus bike
#0 0 2 1 1 0 0
#1 1 2 0 0 1 0
#2 2 6 1 1 1 1
尝试对您的代码稍作修改:
import pandas as pd
df = pd.DataFrame(data={'id':[0,1,2],'car':[1,0,1],'truck':[1,0,1],'bus':[0,1,1],'bike':[0,0,1]})
count = df.drop(columns=['id'],axis=1).sum(numeric_only=True, axis=1)
df.insert(1, "count", count)
print(df)
我有这个 df:
id car truck bus bike
0 1 1 0 0
1 0 0 1 0
2 1 1 1 1
我想向此 df 添加另一列 count
,但在 id
之后和 car
之前对行的值求和,如下所示:
id count car truck bus bike
0 2 1 1 0 0
1 1 0 0 1 0
2 4 1 1 1 1
我知道如何使用此代码添加列:
df.loc[:,'count'] = df.sum(numeric_only=True, axis=1)
但是上面的代码在最后一个位置添加了新列。
我该如何解决这个问题?
有几种方法。我这里提供了两种方式。
#1。创建 count
列后更改列顺序:
df.loc[:,'count'] = df.sum(numeric_only=True, axis=1)
df.columns = ['id', 'count', 'car', 'truck', 'bus', 'bike']
print(df)
# id count car truck bus bike
#0 0 2 1 1 0 0
#1 1 2 0 0 1 0
#2 2 6 1 1 1 1
#2。使用 insert function:
将系列插入特定位置df.insert(1, "count", df.sum(numeric_only=True, axis=1))
print(df)
# id count car truck bus bike
#0 0 2 1 1 0 0
#1 1 2 0 0 1 0
#2 2 6 1 1 1 1
尝试对您的代码稍作修改:
import pandas as pd
df = pd.DataFrame(data={'id':[0,1,2],'car':[1,0,1],'truck':[1,0,1],'bus':[0,1,1],'bike':[0,0,1]})
count = df.drop(columns=['id'],axis=1).sum(numeric_only=True, axis=1)
df.insert(1, "count", count)
print(df)