Naz*_*med 5 python dictionary dataframe pandas
我有一本以城市名称为键的字典,对应于每个城市,有一个日期列表。例如:
{
'A':['2017-01-02','2017-01-03'],
'B':['2017-02-02','2017-02-03','2017-02-04','2017-02-05'],
'C':['2016-02-02']
}
Run Code Online (Sandbox Code Playgroud)
我想将其转换为以下带有 2 列的数据框。
City_Name Date
A 2017-01-02
A 2017-01-03
B 2017-02-02
B 2017-02-03
B 2017-02-04
B 2017-02-05
C 2016-02-02
Run Code Online (Sandbox Code Playgroud)
或者我们可以使用melt
pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in d.items() ])).melt().dropna()
Out[51]:
variable value
0 A 2017-01-02
1 A 2017-01-03
4 B 2017-02-02
5 B 2017-02-03
6 B 2017-02-04
7 B 2017-02-05
8 C 2016-02-02
Run Code Online (Sandbox Code Playgroud)
受 piR 启发的方法
pd.Series(d).apply(pd.Series).melt().dropna()
Out[142]:
variable value
0 0 2017-01-02
1 0 2017-02-02
2 0 2016-02-02
3 1 2017-01-03
4 1 2017-02-03
7 2 2017-02-04
10 3 2017-02-05
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2368 次 |
| 最近记录: |