使用 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
我有一个员工工时的 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