Pandas在最后一行的多个列中插入字典值

时间:2018-06-13 09:07:17

标签: pandas

我在添加指定列的值时遇到问题。 请参阅以下代码以便您理解。

[可能的选项,但我真的不想在空白处添加无值。 ]

a3 = '[10:17:47-579318]A3016KR4167N30003007G1 0001189300000240101747570000000000000000 00011925 00011935 00011892 000118920019265002293475210000000000000000002 00012000 00011786'

df_0 = pd.DataFrame(columns = ['time', 'cur_p', 'exec_q', 'inv_t', 'l_lvl1_q', 's_lvl1_q', 'inv_l_q', 'inv_s_q', 's_or_l'])

b0_dic = {'time': a3[:17],
           'cur_p': None,
           'exec_q': None,
           'inv_t': None,
           'l_lvl1_q': a3[57:63],
           's_lvl1_q': a3[139:145],
           'inv_l_q': None,
           'inv_s_q': None,
           's_or_l': None,}   
df_0.loc[len(df_0)] = b0_dic
df_0

由于上面的代码实际上没用,因为大数据集需要很长时间,

我想让它像下面的代码一样工作,

data0 = pd.DataFrame(columns = ['time', 'cur_p', 'exec_q', 'inv_t', 
                             'l_lvl1_q', 's_lvl1_q',
                              'inv_l_q', 'inv_s_q', 's_or_l'])
dic = {'time': a3[:17],
       'cur_p': a3[40:48],
       'exec_q': a3[48:54],
       's_or_l': a3[152:153]}
data0.loc[len(data0)] = dic
data0

但它给我一个错误代码

" ValueError:无法设置列不匹配的行"

请让我知道如何开发代码

非常感谢你。

1 个答案:

答案 0 :(得分:2)

您可以使用:

df_0 = pd.DataFrame(columns = ['time', 'cur_p', 'exec_q', 'inv_t', 'l_lvl1_q', 
                               's_lvl1_q', 'inv_l_q', 'inv_s_q', 's_or_l'])

df_0.loc[len(df_0), ['time', 'cur_p', 'exec_q', 's_or_l']] = [a3[:17], 
                                                  a3[40:48], a3[48:54], a3[152:153]]
df_0