Python 在for循环中创建数据帧列
我很难弄清楚如何在for循环中创建数据帧Python 在for循环中创建数据帧列,python,pandas,Python,Pandas,我很难弄清楚如何在for循环中创建数据帧 df = pd.DataFrame() for sym in sorted(snapshot): for lp in sorted(snapshot[sym]): df['trader'] = lp df['bid'] = snapshot[sym][lp][":b"]["LUC"]["price"] if ":b" in snapshot[sym][lp] else "0" df['ask'] =
df = pd.DataFrame()
for sym in sorted(snapshot):
for lp in sorted(snapshot[sym]):
df['trader'] = lp
df['bid'] = snapshot[sym][lp][":b"]["LUC"]["price"] if ":b" in snapshot[sym][lp] else "0"
df['ask'] = snapshot[sym][lp][":a"]["LUC"]["price"] if ":a" in snapshot[sym][lp] else "0"
print df
print df['trader']
在列中打印'df'结果:[交易员、出价、询问]索引:[]
打印“df['trader']会产生系列([],名称:bid,数据类型:object)
如果我将df[列标题]更改为assignments,则所有内容都可以正常打印
我正在尝试创建一个如下所示的df:
trader bid ask
0 MM2 1.25 1.26
1 MM5 1.23 1.27
2 MM3 1.25 1.28
....
感谢所有的帮助从你的问题中很难理解发生了什么以及你有什么数据。在for循环的每个步骤中,您都可以从代码中重写列。您可以添加带有索引的
loc
,以避免:
df = pd.DataFrame()
sym_len = len(snapshot[sym])
for i, sym in enumerate(sorted(snapshot)):
for j, lp in enumerate(sorted(snapshot[sym])):
idx = i*sym_len + j
df.loc[idx, 'trader'] = lp
df.loc[idx, 'bid'] = snapshot[sym][lp][":b"]["LUC"]["price"] if ":b" in snapshot[sym][lp] else "0"
df.loc[idx, 'ask'] = snapshot[sym][lp][":a"]["LUC"]["price"] if ":a" in snapshot[sym][lp] else "0"
什么是快照<代码>词典<代码>Json?你能在问题中添加示例吗?你在每一步中都会覆盖你的列。我如何才能将出价和要求更改为浮动?@Tom你可以使用方法
astype(float)