gpt4 book ai didi

python - 通过将每一列重复一定次数来创建数据框

转载 作者:行者123 更新时间:2023-12-05 09:34:52 27 4
gpt4 key购买 nike

我需要转换以下数据框:

ID   | A  | B  | C  | D  | E  |
1 | 3 | 1 | 2 | 1 | 0 |
2 | 0 | 1 | 2 | 5 | 2 |
3 | 2 | 2 | 5 | 3 | 10 |

将每个列名作为新值,重复值中指定的次数。所以,三行“A”,一行“B”,等等:

ID | VALUE |
1 | A |
1 | A |
1 | A |
1 | B |
1 | C |
1 | C |
1 | D |
2 | B |
2 | C |
2 | C |
...

到目前为止,我一直在循环播放,构建一个新的数据框,但它一直在进行(100,000 个原始行,以及 100+ 的值)并且感觉不对。看过 meltexplode 但这不是我想要的。有什么优雅的解决方案吗?

data = [{'ID': 1, 'A': 3, 'B': 1, 'C': 2, 'D': 1, 'E': 0},
{'ID': 2, 'A': 0, 'B': 1, 'C': 2, 'D': 5, 'E': 2},
{'ID': 3, 'A': 2, 'B': 2, 'C': 5, 'D': 3, 'E': 10}]

df = pd.DataFrame(data)

最佳答案

使用 pandas.DataFrame.columns.repeat 的一种方法:

df.apply(df.columns.repeat, axis=1).explode()

输出:

ID
1 A
1 A
1 A
1 B
1 C
1 C
1 D
2 B
...
3 E
3 E
3 E
dtype: object

关于python - 通过将每一列重复一定次数来创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66201980/

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