python - pandas join 操作(非常大的数据)
问题描述
我有一个大约 500 万行的 pandas DataFrame。这些列代表一种键值格式。
示例 :- 'Time', 'P1','Q1','P2','Q2'....'P20','Q20'(共 21 列) P1,P2,...P20 可以取不同的值范围从 100..1000 我需要创建一个数据框,其中 P1..P20 的值成为键(键范围从 100..1000)并且对应的值 Q1,..Q20 应该是每个单独的列。(现在你有 500 万列)
这就像第一个数据帧的转置(缺少键值为 0)。
目前,我正在使用 df.ix[] 将字典中的每一行与相应的列值转换并创建它的数据框,然后加入。
for i in range(1, len(df.index)):
print(i)
d = {'Price' : df.ix[:,list(range(2, 81, 2))].loc[i].values, 'Qty': df.ix[:,list(range(3, 82, 2))].loc[i].values}
master1 = pd.DataFrame(d)
master1.set_index('Price', inplace=True)
master = master.join(master1, rsuffix=i)
对于少量数据,这很好,但在 5 百万行上,它需要太多的内存和时间。有什么办法可以让这更快吗?
EndGoal :-
Current dataFrame Data :-
T1 P1 Q11
T1 P2 Q21
T1 P3 Q31
T2 P1 Q12
T2 P2 Q22
T3 P3 Q32
Output :-
P1 Q11 Q12
P2 Q21 Q22
P3 Q31 Q32
-阿皮特
解决方案
推荐阅读
- python - 如何在 Cassandra 中正确配置和执行 BatchStatement?
- java - 春季微服务期间的数据库问题
- flutter - 无法使用对齐小部件和对齐属性对齐行的子级
- networking - 无法在应用层检测碰撞?唔
- python - 多处理价值的解释?(意外的输出)
- swift - 不能执行任何到具体类型的泛型类型
- pdf - 在 itext7 中添加到 PDF 时旋转的图像
- file - 将固定块大小文件系统中的 1K 块大小更改为 2K 将如何影响磁盘吞吐量/利用率
- git - GitHub 标签触发多个 Travis CI 构建
- unreal-engine4 - UE4 Navmesh 在视口和游戏中不一样