使用 pandas 将 "flat" csv 数据转换为 table

Converting "flat" csv data to table with pandas

我有一个员工工时的 CSV 文件。每行包含一列员工、日期和时间。一个例子是:

Employee,Date,Hours
A,2015-01-02,10
A,2015-01-03,8
A,2015-01-04,5
B,2015-01-02,8
B,2015-01-03,2
C,2015-01-03,8
C,2015-01-04,8

我要找的是一个Pandas数据框,其中行索引是日期,每列是一个员工,数据是小时数例如:

Date         A     B     C
2015-01-02   10    8     None
2015-01-03   8     2     8
2015-01-04   5     None  8

也许我正在搜索错误的术语,但是 pandas 中是否有一种简单的方法可以在导入 csv 文件时进行这种转换?

像这样使用 read_csv 加载 csv 后:df = pd.read_csv(file_path) 然后您可以使用 pivot 并分别将 Employee 和 Date 列作为列和索引传递:

In [91]:

df.pivot(columns='Employee', index='Date')
Out[91]:
           Hours        
Employee       A   B   C
Date                    
2015-01-02    10   8 NaN
2015-01-03     8   2   8
2015-01-04     5 NaN   8