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