【问题标题】:Creating a DataFrame from a list of float values从浮点值列表创建 DataFrame
【发布时间】:2019-05-31 16:23:14
【问题描述】:

我有一个包含浮点值的列表,我想用它制作一个 DataFrame。但我收到一个错误 TypeError: 'float' object is not iterable

    '''python   
       newlist = []
       for i in path.toolpath:   
            newlist = [i.x, i.y,i.z, i.e, i.moveSpd]
            labels = ['x_coordinate' , 'y_coordinate', 'z_coordinate', 'e', 'speed'] 
       df1 = pd.DataFrame.from_records(newlist, columns = labels)
       print(df1)
    '''

A part of newlist is as follows.
    [-40.8629, 2.28, 44.3492, 1698.7625, 300]
    [-40.788, 2.28, 43.352, 1699.0625, 300]
    [-40.7131, 2.28, 42.3548, 1699.3625, 300]
    [-40.6382, 2.28, 41.3576, 1699.6625, 300]
    [-40.5633, 2.28, 40.3604, 1699.9625, 300]

【问题讨论】:

  • 你能提供一个你的数据框应该是什么样子的sn-p吗?
  • 这不是熊猫或数据框问题,而是纯 python:“为什么我的循环中的 newlist 变量没有得到更新?”您需要使用反引号字符而不是单引号来创建代码 sn-ps。对于您的问题,问题是您在每个循环中将最新的i 分配给newlist,覆盖之前在newlist 中的任何内容。您可以在循环中通过print(f"i: {i}")print(f"newlist: {newlist}") 找到它,并注意到它们都只包含最新的i

标签: python pandas dataframe


【解决方案1】:

您的 new_list 变量被覆盖,您需要附加该值。 像这样

newlist = []
for i in path.toolpath:   
    temp = [i.x, i.y,i.z, i.e, i.moveSpd]
    new_list.append(temp)
labels = ['x_coordinate' , 'y_coordinate', 'z_coordinate', 'e', 'speed'] 
df1 = pd.DataFrame(newlist, columns = labels)
print(df1)

【讨论】:

  • 它的工作,但我不明白为什么它不能工作,因为我正在打印我得到输出的新列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-19
  • 2021-08-31
  • 2018-06-11
  • 2017-04-29
  • 1970-01-01
  • 2018-10-17
相关资源
最近更新 更多