Python 将每天有多个条目的列表转换为标准的日间索引,并为每个条目指定自己的列
我有一个文件如下所示:Python 将每天有多个条目的列表转换为标准的日间索引,并为每个条目指定自己的列,python,pandas,dataframe,date,Python,Pandas,Dataframe,Date,我有一个文件如下所示: Date | col1 | col2 | col3 2010-01-01 | -1.4 | 0.0 | 0.0 2010-01-01 | -1.4 | 0.0 | 0.0 2010-01-01 | -2.4 | 0.0 | 0.66 2010-01-02 | -2.4 | 0.0 | 0.08 2010-01-02 | -4.3 | 0.0 | 0.1 2010-01-02 | -4.3 | 0.0 | 1.04 Date | cit
Date | col1 | col2 | col3
2010-01-01 | -1.4 | 0.0 | 0.0
2010-01-01 | -1.4 | 0.0 | 0.0
2010-01-01 | -2.4 | 0.0 | 0.66
2010-01-02 | -2.4 | 0.0 | 0.08
2010-01-02 | -4.3 | 0.0 | 0.1
2010-01-02 | -4.3 | 0.0 | 1.04
Date | city1_col1 | city1_col2 | city1_col3 | city2_col1| city2_col2 | city2_col3 | city3_col1| city3_col2 | city3_col3
2010-01-01 | -1.4 | 0.0 | 0.0 | -1.4 | 0.0 | 0.0 | -2.4 | 0.0 | 0.66
2010-01-02 | -2.4 | 0.0 | 0.08 | -4.3 | 0.0 | 0.1 | -4.3 | 0.0 | 1.04
同一天指的是一个特定的城市,因此2010-01-01有3个城市的数据,2010-01-02和所有其他日期的数据都是相同的,目前13个城市=每天13行
城市名称在列表中,城市顺序与日期顺序相同:
["city1", "city2", "city3"]
因此,城市1是每天的第一行,然后是城市2,然后是城市3,依此类推
我需要将此格式转换为标准格式,以便将日期设置为索引,因此需要如下格式:
Date | col1 | col2 | col3
2010-01-01 | -1.4 | 0.0 | 0.0
2010-01-01 | -1.4 | 0.0 | 0.0
2010-01-01 | -2.4 | 0.0 | 0.66
2010-01-02 | -2.4 | 0.0 | 0.08
2010-01-02 | -4.3 | 0.0 | 0.1
2010-01-02 | -4.3 | 0.0 | 1.04
Date | city1_col1 | city1_col2 | city1_col3 | city2_col1| city2_col2 | city2_col3 | city3_col1| city3_col2 | city3_col3
2010-01-01 | -1.4 | 0.0 | 0.0 | -1.4 | 0.0 | 0.0 | -2.4 | 0.0 | 0.66
2010-01-02 | -2.4 | 0.0 | 0.08 | -4.3 | 0.0 | 0.1 | -4.3 | 0.0 | 1.04
数据随后与其他数据帧合并,其中索引也是一年中的几天,因此多索引将不起作用
我怎样才能用熊猫做到这一点呢?这里有一个方法:
df["city"] = cities * (len(df) // len(cities))
df = pd.pivot_table(df, index="Date", columns="city")
df.columns = [c[1] + "_" + c[0] for c in df.columns]
df=df.sort_index(axis=1)
输出为:
city1_col1 city1_col2 city1_col3 city2_col1 city2_col2 city2_col3 city3_col1 city3_col2 city3_col3
Date
2010-01-01 -1.4 0.0 0.00 -1.4 0.0 0.0 -2.4 0.0 0.66
2010-01-02 -2.4 0.0 0.08 -4.3 0.0 0.1 -4.3 0.0 1.04