更進一步學習和理解DataFrame,Series
多個Series 拼湊成一個 dict, 然後將dict轉爲 DataFrame結構
#!/usr/bin/evn python import numpy as np import pandas as pd serA = pd.Series({"000001.CS":1.2, "000002.CS":1.3}) print("serA:", serA) print("serA.index:", serA.index) print("serA.values:", serA.values) serB = pd.Series({"000003.CS":10.2, "000004.CS":10.3, "000005.CS":10.3}) serC = pd.Series({"000006.CS":20.2,"000004.CS":20.3,"000001.CS":20.3}) serD = pd.Series({"000007.CS":30.2, "000008.CS":31.3, "000009.CS":31.5, "000010.CS":40.3, "000011.CS":5.3}) serE = pd.Series(dtype='float64') results={} results["serA"] = serA results["serB"] = serB results["serC"] = serC results["serD"] = serD #results["serE"] = pd.Series(np.nan,index=["EMPTY_CODE"]); results["serE"] = serE print("result:", results) dt = 20230310 df = pd.DataFrame(results) # 去掉 EMPTY_CODE 這個 index #df = df.filter(like="CS", axis=0) df['dt'] = dt df['symbol'] = df.index.values print("df:",df) df.reset_index(drop=True, inplace=True) print("df.reset_index:",df)
serA: 000001.CS 1.2 000002.CS 1.3 dtype: float64 serA.index: Index(['000001.CS', '000002.CS'], dtype='object') serA.values: [1.2 1.3] result: {'serA': 000001.CS 1.2 000002.CS 1.3 dtype: float64, 'serB': 000003.CS 10.2 000004.CS 10.3 000005.CS 10.3 dtype: float64, 'serC': 000006.CS 20.2 000004.CS 20.3 000001.CS 20.3 dtype: float64, 'serD': 000007.CS 30.2 000008.CS 31.3 000009.CS 31.5 000010.CS 40.3 000011.CS 5.3 dtype: float64, 'serE': Series([], dtype: float64)} df: serA serB serC serD serE dt symbol 000001.CS 1.2 NaN 20.3 NaN NaN 20230310 000001.CS 000002.CS 1.3 NaN NaN NaN NaN 20230310 000002.CS 000003.CS NaN 10.2 NaN NaN NaN 20230310 000003.CS 000004.CS NaN 10.3 20.3 NaN NaN 20230310 000004.CS 000005.CS NaN 10.3 NaN NaN NaN 20230310 000005.CS 000006.CS NaN NaN 20.2 NaN NaN 20230310 000006.CS 000007.CS NaN NaN NaN 30.2 NaN 20230310 000007.CS 000008.CS NaN NaN NaN 31.3 NaN 20230310 000008.CS 000009.CS NaN NaN NaN 31.5 NaN 20230310 000009.CS 000010.CS NaN NaN NaN 40.3 NaN 20230310 000010.CS 000011.CS NaN NaN NaN 5.3 NaN 20230310 000011.CS df.reset_index: serA serB serC serD serE dt symbol 0 1.2 NaN 20.3 NaN NaN 20230310 000001.CS 1 1.3 NaN NaN NaN NaN 20230310 000002.CS 2 NaN 10.2 NaN NaN NaN 20230310 000003.CS 3 NaN 10.3 20.3 NaN NaN 20230310 000004.CS 4 NaN 10.3 NaN NaN NaN 20230310 000005.CS 5 NaN NaN 20.2 NaN NaN 20230310 000006.CS 6 NaN NaN NaN 30.2 NaN 20230310 000007.CS 7 NaN NaN NaN 31.3 NaN 20230310 000008.CS 8 NaN NaN NaN 31.5 NaN 20230310 000009.CS 9 NaN NaN NaN 40.3 NaN 20230310 000010.CS 10 NaN NaN NaN 5.3 NaN 20230310 000011.CS Process finished with exit code 0