gpt4 book ai didi

python - 对值进行排序并根据行创建新列 Pandas

转载 作者:行者123 更新时间:2023-12-04 08:08:00 35 4
gpt4 key购买 nike

我有一个 DataFrame来自 Pandas :

df = pd.DataFrame({'Job': ['Math', 'Math', 'Math', 'Math', 'Physics', 'Physics', 'Physics',
'English', 'English', 'English'],
'First_Name': ['William', 'James', 'Harper', 'William', 'Mason', 'Evelyn', 'Jacob',
'Eve', 'Ana', 'Theo'],
'Building': ['A1', 'A2', 'A3', 'A1', 'A2', 'A3', 'A1', 'A3', 'A1', 'A2'],
'Years_employed': [1, 2, 4, 6, 1, 4, 2, 3, 3, 2]},
columns=['Job', 'First_Name', 'Building', 'Years_employed'])

print(df)
我试过的:
dfs = df.sort_values(['Building', 'Years_employed'])
dfs['answer'] = dfs['Job'].shift(-1)
dfs.loc[:, "answer"] = dfs.Job == dfs.answer
(它不起作用,因为 idk 如何指定 row(N) 和 row(N-1) 应该具有相同的建筑物)
我如何通过构建来确定新员工是否与她之前受雇的人拥有相同的工作 同一栋楼 ?

最佳答案

您可以将 np.where 与 shift 一起使用:

dfs = df.sort_values(['Building', 'Years_employed'])    

dfs['result'] = np.where(((dfs.Job == dfs.Job.shift(1)) & (dfs.Building==dfs.Building.shift(1))), True, False)
示例(我使用了另一个数据帧,因为您当前的数据帧没有产生 True 值):
df = pd.DataFrame({'Job': ['Math', 'Math', 'Math', 'Math', 'Physics', 'Physics', 'Physics',
'English', 'English', 'English'],
'First_Name': ['William', 'James', 'Harper', 'William', 'Mason', 'Evelyn', 'Jacob',
'Eve', 'Ana', 'Theo'],
'Building': ['A1', 'A1', 'A1', 'A1', 'A2', 'A3', 'A1', 'A3', 'A1', 'A2'],
'Years_employed': [1, 2, 4, 6, 1, 4, 2, 3, 3, 2]},
columns=['Job', 'First_Name', 'Building', 'Years_employed'])
输出:
       Job First_Name Building  Years_employed  result
0 Math William A1 1 False
1 Math James A1 2 True
6 Physics Jacob A1 2 False
8 English Ana A1 3 False
2 Math Harper A1 4 False
3 Math William A1 6 True
4 Physics Mason A2 1 False
9 English Theo A2 2 False
7 English Eve A3 3 False
5 Physics Evelyn A3 4 False

关于python - 对值进行排序并根据行创建新列 Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66127555/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com