ดังนั้นฉันจึงใช้ for loop ในการวนซ้ำผ่านพจนานุกรมเช่นกัน แต่สิ่งหนึ่งที่ฉันพบว่าทำงานได้เร็วกว่ามากคือการแปลงเป็นพาเนลจากนั้นเป็น dataframe สมมติว่าคุณมีพจนานุกรมง
import pandas as pd
d
{'RAY Index': {datetime.date(2014, 11, 3): {'PX_LAST': 1199.46,
'PX_OPEN': 1200.14},
datetime.date(2014, 11, 4): {'PX_LAST': 1195.323, 'PX_OPEN': 1197.69},
datetime.date(2014, 11, 5): {'PX_LAST': 1200.936, 'PX_OPEN': 1195.32},
datetime.date(2014, 11, 6): {'PX_LAST': 1206.061, 'PX_OPEN': 1200.62}},
'SPX Index': {datetime.date(2014, 11, 3): {'PX_LAST': 2017.81,
'PX_OPEN': 2018.21},
datetime.date(2014, 11, 4): {'PX_LAST': 2012.1, 'PX_OPEN': 2015.81},
datetime.date(2014, 11, 5): {'PX_LAST': 2023.57, 'PX_OPEN': 2015.29},
datetime.date(2014, 11, 6): {'PX_LAST': 2031.21, 'PX_OPEN': 2023.33}}}
คำสั่ง
pd.Panel(d)
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 2 (major_axis) x 4 (minor_axis)
Items axis: RAY Index to SPX Index
Major_axis axis: PX_LAST to PX_OPEN
Minor_axis axis: 2014-11-03 to 2014-11-06
โดยที่ pd.Panel (d) [item] ให้ dataframe
pd.Panel(d)['SPX Index']
2014-11-03 2014-11-04 2014-11-05 2014-11-06
PX_LAST 2017.81 2012.10 2023.57 2031.21
PX_OPEN 2018.21 2015.81 2015.29 2023.33
จากนั้นคุณสามารถกดคำสั่ง to_frame () เพื่อเปลี่ยนเป็น dataframe ฉันใช้ reset_index เพื่อเปลี่ยนแกนหลักและแกนรองให้เป็นคอลัมน์แทนที่จะให้เป็นดัชนี
pd.Panel(d).to_frame().reset_index()
major minor RAY Index SPX Index
PX_LAST 2014-11-03 1199.460 2017.81
PX_LAST 2014-11-04 1195.323 2012.10
PX_LAST 2014-11-05 1200.936 2023.57
PX_LAST 2014-11-06 1206.061 2031.21
PX_OPEN 2014-11-03 1200.140 2018.21
PX_OPEN 2014-11-04 1197.690 2015.81
PX_OPEN 2014-11-05 1195.320 2015.29
PX_OPEN 2014-11-06 1200.620 2023.33
สุดท้ายหากคุณไม่ชอบรูปลักษณ์ของเฟรมคุณสามารถใช้ฟังก์ชันทรานสโพสของพาเนลเพื่อเปลี่ยนรูปลักษณ์ก่อนที่จะเรียก to_frame () ดูเอกสารที่นี่
http://pandas.pydata.org/pandas-docs/dev/generated /pandas.Panel.transpose.html
เป็นเพียงตัวอย่าง
pd.Panel(d).transpose(2,0,1).to_frame().reset_index()
major minor 2014-11-03 2014-11-04 2014-11-05 2014-11-06
RAY Index PX_LAST 1199.46 1195.323 1200.936 1206.061
RAY Index PX_OPEN 1200.14 1197.690 1195.320 1200.620
SPX Index PX_LAST 2017.81 2012.100 2023.570 2031.210
SPX Index PX_OPEN 2018.21 2015.810 2015.290 2023.330
หวังว่านี่จะช่วยได้