Python 如何将带有空格分隔浮动的字符串列表转换为数据帧

Python 如何将带有空格分隔浮动的字符串列表转换为数据帧,python,list,Python,List,我有如下元素列表: ['1.3 2.4 3.6','4.6 5 6.8','6.5 7.2 8.1'] 其中每个元素都有少量由空间分隔的观测值 我想把它转换成数据帧。我被困住了,如何将每个观察结果分离并形成数据框架?您可以使用: split用于分隔字符串的函数 float将str转换为float的函数 列表理解 一行指令可以做你想做的事情 data = ['1.3 2.4 3.6','4.6 5 6.8','6.5 7.2 8.1'] dataframe = [[float(x) for

我有如下元素列表:

['1.3 2.4 3.6','4.6 5 6.8','6.5 7.2 8.1']
其中每个元素都有少量由空间分隔的观测值

我想把它转换成数据帧。我被困住了,如何将每个观察结果分离并形成数据框架?

您可以使用:

  • split
    用于分隔字符串的函数
  • float
    将str转换为float的函数
  • 列表理解
一行指令可以做你想做的事情

data = ['1.3 2.4 3.6','4.6 5 6.8','6.5 7.2 8.1']
dataframe = [[float(x) for x in e.split()] for e in data]

必须迭代列表中的元素(字符串)。对于这些字符串中的每一个,都使用split操作符。在这个过程结束时,您将有一个列表列表。因此,您只需通过传递列表列表来创建数据帧。下面的代码说明了我刚才所说的

import pandas as pd

l = ['1.3 2.4 3.6','4.6 5 6.8','6.5 7.2 8.1']

columns = ['col1', 'col2', 'col3']

data = [[float(x) for x in e.split()] for e in l]

df = pd.DataFrame(data, columns=columns)

print(df)
split()
将字符串拆分为列表,默认情况下分隔符为空白

d=[[i.split()中l的浮点数(l)]用于lst中的i]

这里您使用的是列表理解,在这里您迭代
lst
中的每个元素并拆分字符串

'1.3 2.4 3.6'
放入一个列表
[1.3,2.4,3.6]
,并使用
float(l)
键入将其转换为float

输出:

     a    b    c
0  1.3  2.4  3.6
1  4.6  5.0  6.8
2  6.5  7.2  8.1

首先,您需要分离列表中的每个元素,然后可以再次拆分它们并转换为float

data = ['1.3 2.4 3.6','4.6 5 6.8','6.5 7.2 8.1']
result = []
for row in data:
    value_list = row.split(' ') 
    result += value_list

result = list(map(float, result))

print(result)

上面给出的代码仍然可以使用pythonic方法进行优化,但为了让您更容易理解流程,特意让代码更简单。

此数据帧的形状是什么?每个字符串都是一行?
data = ['1.3 2.4 3.6','4.6 5 6.8','6.5 7.2 8.1']
result = []
for row in data:
    value_list = row.split(' ') 
    result += value_list

result = list(map(float, result))

print(result)