如何将字典转换为 Pandas df?
Posted
技术标签:
【中文标题】如何将字典转换为 Pandas df?【英文标题】:How to convert a dictionary to Pandas df? 【发布时间】:2022-01-19 08:09:03 【问题描述】:我已尝试使用以下代码从 api 获取实时数据。
feed_opened = False
def event_handler_feed_update(tick_data):
print(tick_data)
# print("feed event: 0".format(time.strftime('%d-%m-%Y %H:%M:%S')) + str(tick_data))
# dctmessage = k:[v] for k,v in tick_data.items()
df1 = pd.DataFrame.from_dict(tick_data)
# df1.to_csv("E:/Python/tickdata.csv",mode="a", index=False)
print (df1)
def open_callback():
global feed_opened
feed_opened = True
api.start_websocket(subscribe_callback=event_handler_feed_update, socket_open_callback=open_callback)
while(feed_opened==False):
pass
api.subscribe("CDS|5316", feed_type="d")
我尝试将 tick_data 转换为 pandas 数据框。但是得到以下输出....
ERROR:websocket:error from callback <bound method NorenApi.__on_data_callback of <api_helper.ShoonyaApiPy object at 0x00000000056FCD00>>: If using all scalar values, you must pass an index
't': 'dk', 'e': 'CDS', 'tk': '5316', 'ts': 'USDINR24DEC21C76', 'pp': '4', 'ls': '1', 'ti': '0.0025', 'lp': '0.3075', 'pc': '-33.15', 'ft': '1639640923', 'o': '0.4225', 'h': '0.4250', 'l': '0.2725', 'c': '0.4600', 'ap': '0.3550', 'v': '13390', 'ltq': '2', 'ltt': '13:17:41', 'tbq': '2289', 'tsq': '1163', 'bp1': '0.3000', 'sp1': '0.3075', 'bp2': '0.2975', 'sp2': '0.3100', 'bp3': '0.2950', 'sp3': '0.3125', 'bp4': '0.2875', 'sp4': '0.3250', 'bp5': '0.2850', 'sp5': '0.3275', 'bq1': '21', 'sq1': '18', 'bq2': '103', 'sq2': '1', 'bq3': '50', 'sq3': '150', 'bq4': '1', 'sq4': '18', 'bq5': '20', 'sq5': '24', 'bo1': '2', 'so1': '1', 'bo2': '2', 'so2': '1', 'bo3': '1', 'so3': '2', 'bo4': '1', 'so4': '3', 'bo5': '2', 'so5': '3', 'uc': '0.7950', 'lc': '0.1250', 'oi': '35759'
如何制作合适的数据框?
【问题讨论】:
【参考方案1】:这应该可以解决问题:
pd.DataFrame.from_records([tick_data])
【讨论】:
【参考方案2】:假设你有一本字典 喜欢:
d = 'Saha':1,'Sourav':2,'family': 3
然后,我们必须像这样提取字典项
dict_items = d.items()
现在将 dict_items 转换为列表
item_list = list(dict_items)
最后,使用 pandas 将列表转换为数据框
df = pd.DataFrame(item_list)
【讨论】:
试过但没有用。以上是关于如何将字典转换为 Pandas df?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 DataFrame 中的每一行/单元格值转换为 pandas 中的字典列表?