将不同的列值拆分为多个列

时间:2018-05-09 12:14:38

标签: python-3.x pandas

我在下面的示例中有一个时间序列数据框:

Date         Ticker      Price
2018-01-01    AAA        100
2018-01-01    BBB        200
2018-01-01    CCC        1000
2018-01-01    DDD        3000
2018-01-02    BBB        201
2018-01-02    CCC        1001

我想获取“Ticker”列的Unique值,并将唯一的代码转换为dataframe列。我的数据框应该如下所示

Date          AAA      BBB    CCC    DDD
2018-01-01    100      200    1000   3000
2018-01-02    NaN      201    1001   NaN

我对Python有点新,但还没找到解决问题的方法。任何人都可以建议一个有效的解决方案,因为我一次处理大约1M这样的行,并且需要一个工作得更快的解决方案。 Thanx in adv。

1 个答案:

答案 0 :(得分:1)

您可以使用pivot_table

df = pd.pivot_table(df, values = 'Price', index='Date', columns = 'Ticker').reset_index().rename_axis(None, axis=1)

数据帧:

         Date Ticker  Price
0  2018-01-01    AAA    100
1  2018-01-01    BBB    200
2  2018-01-01    CCC   1000
3  2018-01-01    DDD   3000
4  2018-01-02    BBB    201
5  2018-01-02    CCC   1001

输出:

              Date    AAA    BBB     CCC     DDD
0       2018-01-01  100.0  200.0  1000.0  3000.0
1       2018-01-02    NaN  201.0  1001.0     NaN