python-3.x 根据特定条件在数据框中创建附加列

j9per5c4  于 2022-12-24  发布在  Python
关注(0)|答案(1)|浏览(114)

我给出了一个数据集:

#Load the required libraries
import pandas as pd

#Create dataset
data = {'team': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'],
        'Run_time': [1, 2, 3, 4, 5, 1, 2, 3, 1, 2, 3, 4],
        'Married': ['No', 'Yes', 'Yes', 'Yes', 'No', 'Yes', 'Yes', 'Yes', 'No', 'Yes', 'Yes', 'No'],
        'Self_Employed': ['No', 'No', 'Yes', 'No', 'No', 'No', 'Yes', 'No', 'No', 'Yes', 'No', 'No'],
        'LoanAmount': [123, 128, 66, 120, 141, 52,96,15,85,36,58,89],
        }

#Convert to dataframe
df = pd.DataFrame(data)
print("df = \n", df)

在这里,我希望添加一个额外的列“Last_entry”,它将包含0和1。
此列显示为,对于team-A,最后运行时间为5。因此该行的Last_entry=1,team-A的所有其他运行时间应为0。
对于team-B,最后运行时间为3。因此该行的Last_entry=1,team-B的所有其他运行时间应为0。
对于team-C,最后运行时间为4。因此该行的Last_entry=1,team-C的所有其他运行时间应为0。
净结果应该是这样的:
New dataframe by adding additional column
有人能告诉我如何在python中完成这个任务吗?
我希望使用python在现有数据集中添加一个附加列

vwkv1x7d

vwkv1x7d1#

你可以使用groupbytail来获取每个队的最后一个条目,然后创建一个新的零列,并将结果行设置为1:

# Determine indicies for last entries
last_entry_idx = df.groupby('team').tail(1).index

# Create new column
df['last_entry'] = 0
df.loc[last_entry_idx, 'last_entry'] = 1

相关问题