gpt4 book ai didi

python - 如何将 DataFrame 的列重新排列为索引二进制矩阵?

转载 作者:行者123 更新时间:2023-12-04 14:44:30 25 4
gpt4 key购买 nike

我正在尝试转换此数据框:

data_in = {
'dates': [2017, 2017, 2018, 2019, 2019, 2019],
'names': ['Roger', 'Rafa', 'Roger', 'Rafa', 'Novak', 'Dom']
}
df_in = pd.DataFrame(data_in)
>>> df_in
dates names
0 2017 Roger
1 2017 Rafa
2 2018 Roger
3 2019 Rafa
4 2019 Novak
5 2019 Dom

进入这个二进制矩阵:

>>> df_out

Roger Rafa Novak Dom
dates
2017 1 1 0 0
2018 1 0 0 0
2019 0 1 1 1

所有日期作为索引,所有名称作为列,如果在日期出现名称,则数据为 1,如果不出现,则为 np.NaN 或 0。

我可以构建带有索引和列的 df_out 数据框,但是您将如何获取数据?

最佳答案

使用 get_dummies max for 1 如果存在值 else 0:

df = pd.get_dummies(df_in.set_index('dates')['names']).groupby(level=0).max()
print (df)
Dom Novak Rafa Roger
dates
2017 0 0 1 1
2018 0 0 0 1
2019 1 1 1 0

关于python - 如何将 DataFrame 的列重新排列为索引二进制矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65611819/

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