gpt4 book ai didi

python - 如何按列中的值分组,找到空值,然后替换

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:36 25 4
gpt4 key购买 nike

我是 Python 的新手,我迷路了。

我有一个名为 d 的数据框,它是这样的:

    name  win   loser   sortvalue  
joe yes car1
jan yes car1
stan yes car1
fred yes car2
josh yes car2

我希望它看起来像这样:

    win   loser   sortvalue
joe jan car1
joe stan car1
josh fred car2

所以我想按“排序值”对其进行排序,然后在“获胜”列中找到表示"is"的单元格,并将它们替换为“失败”列/行中表示"is"的相应“名称” ”

到目前为止,我所做的是使用 groupby 对数据框进行排序:

    d = pd.read_excel('nameoffile.xls', sheet_name='jw')
df = pd.DataFrame(d)
df1 = dict(tuple(df.groupby('sortvalue')))

这会返回一系列按“sortvalue”排序的字典。但我无法弄清楚如何编写迭代这些字典的函数,以将 win 中的“yes”替换为“loser”中的“yes”列中的“name”。而且我也不确定 groupby 是否是正确的做法。做字典合适吗?

最佳答案

yes 值过滤DataFrame,重命名 列并使用DataFrame.merge :

df1 = df.loc[df['win'] == 'yes', ['name','sortvalue']].rename(columns={'name':'win'})
df2 = df.loc[df['loser'] == 'yes', ['name','sortvalue']].rename(columns={'name':'loser'})

df = pd.merge(df1, df2, on='sortvalue')[['win','loser','sortvalue']]
print (df)
win loser sortvalue
0 joe jan car1
1 joe stan car1
2 josh fred car2

关于python - 如何按列中的值分组,找到空值,然后替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57471500/

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