【发布时间】:2018-02-25 17:59:05
【问题描述】:
我有一个数据框,其中包含大量列 (~36K),其中许多列是某些分类信息的重复。
从这个更大的数据框,我想基本上构建一组关系数据框。
我已经列出了我希望的操纵类型。
Master df
ID record_date Site Site1 Site2 Zip Zip1 Zip2
1 12-01-1990 Site0 Site1 Site2 Zip0 Zip1 Zip2
1 12-12-1990 Site0 Site2 N/A Zip0 Zip2 N/A
1 01-15-1991 Site0 Site2 Site3 Zip0 Zip2 Zip3
在上面的示例中,我显示了站点名称和相关的邮政编码。我的数据框有许多这样的列,它们以顺序方式相关,取决于在记录日期活动的“站点”,基础数据可能会发生变化(例如,我已经显示 Site1 下降 - 变为不活动 - 稍后被替换按站点3)
我希望将上述数据框转换为:
Transformed df
ID record_date Site Zip
1 12-01-1990 Site0 Zip0
1 12-01-1990 Site1 Zip1
1 12-01-1990 Site2 Zip2
1 12-12-1990 Site0 Zip0
1 12-12-1990 Site2 Zip2
1 01-15-1991 Site0 Zip0
1 01-15-1991 Site2 Zip2
1 01-15-1991 Site3 Zip3
由于我必须进行大量这样的转换,因此效率是关键。我相信我可以使用诸如 pd.melt() 或 pd.pivot_table() 之类的函数,但我无法得出下面的确切设置。
【问题讨论】:
标签: python performance pandas dataframe data-manipulation