长时间的收听者,首次呼叫者...
我是python的新手,他很努力地了解如何处理不同用途的列表。在这种情况下,我最终将得到一长串的浮点对象,希望将它们排列到一个数据框中,并在每个循环后添加新行。
cols = ['col1','col2'....etc...]
df= pd.DataFrame(columns=cols)
for symbol in symbolList:
col1 = some floating point calc
col2 = another
...etc...
df = df.append(pd.DataFrame(columns=cols, data=[[','.join(cols)]]))
即使我尝试使用不同的方法来处理结果字符串,以说服python将其视为对象列表而不是字符串。
我敢肯定,不仅有一种相对简单的修改data =参数的方法可以运行,而且还有一种更Python化的方式来实现我的最终结果。很高兴听到有关后者的信息,但对于我的教育,如果我的特定问题有解决方案,我将非常感谢您的帮助。
答案 0 :(得分:0)
您可以尝试使用loc
symbolList = [*'ABCDEFG']
for symbol in symbolList:
col1 = np.random.randn()
col2 = np.random.randn()
df.loc[symbol] = [col1, col2]
但是。如果将数据框定义为float
,则可以使用at
cols = ['col1','col2']
df= pd.DataFrame(columns=cols, dtype=float)
symbolList = [*'ABCDEFG']
for symbol in symbolList:
col1 = np.random.randn()
col2 = np.random.randn()
df.at[symbol] = [col1, col2]
df
col1 col2
A -0.099437 -0.264494
B 0.460220 -0.250704
C -0.127054 -0.372424
D -0.909770 0.835610
E -0.442418 0.298014
F -0.468022 0.111015
G 0.080260 1.768664
事实是,您本来可以使用at
开始的,但是当您定义数据框时,列的dtypes默认为object
,而当您使用at
时,它什么也没有改变当您创建float
的新行时。