【发布时间】:2020-07-02 02:13:24
【问题描述】:
我正在寻找一种将 N*M 数据帧重塑为 1*(N*M) 数据帧的有效方法:
输入>
df1
ID distUnit col_a col_b
1000 150 35 55
1000 250 10 20
1200 150 12 13
1200 250 16 20
期望的输出>
ID col_a_150 col_b_150 col_a_250 col_b_250
1000 35 55 10 20
1200 12 13 16 20
我的想法>
- 遍历 df1 中的每一行
- 根据
row['distUnit']的值,为col_a和col_b添加前缀 - 使用
combined_first将处理后的行添加回结果数据帧
具有挑战性的部分>
由于我输入数据的大小是14440 * 20,所以我的想法不够高效。
想知道有什么更好的实现方法来解决这个问题吗?
感谢阅读。
【问题讨论】:
-
把这个按照
distUnit拆分成两个DF,然后把ID键控的两个合并。这应该给你一个单行操作,而不是遍历数据框。 -
感谢您的想法。应避免迭代并记住分离的想法