Skip to main content
 首页 » 编程设计

Python DataFrame 将行转换为列

2025年05月04日12shihaiming

我有一个存储有关特定对象和日期的信息的 csv。

Device  Date        Category    Amount 
Pen     01/01/2014  A           12 
Pen     01/01/2014  B           42 
Pen     01/01/2014  C           10 
Pen     01/01/2014  D           5 
Pen     02/01/2014  A           7 
Pen     02/01/2014  B           52 
Pen     02/01/2014  C           1 
Pen     02/01/2014  D           7 
Pencil  01/01/2014  A           22 
Pencil  01/01/2014  B           42 
Pencil  01/01/2014  C           70 
Pencil  01/01/2014  D           8 

我想将它读入 DataFrame 并将类别设为一列,将特定设备的金额和日期设为一行。这将使数据集小得多。

Device  Date        A   B   C   D 
Pen    01/01/2014   12  42  10  5 
Pen    02/01/2014   7   52  1   7 
Pencil  01/01/2014  22  42  70  8 

请您参考如下方法:

您可以使用 pivot_table,其中您要保留的列设置为 index,转到标题的列设置为 columns和填充输出数据框中的单元格的列设置为 values:

df.pivot_table(index=['Device', 'Date'], columns='Category', values='Amount').reset_index() 
 
# Category  Device        Date     A     B   C  D 
#        0     Pen  01/01/2014    12    42  10  5 
#        1     Pen  02/01/2014     7    52   1  7 
#        2  Pencil  01/01/2014    22    42  70  8