我的元素列表如下:
['1.3 2.4 3.6','4.6 5 6.8','6.5 7.2 8.1']
每个元素几乎没有观察点,并用空格隔开。
我想将其转换为数据框。我被困住了,如何将每个观察结果和表格数据框分开?
答案 0 :(得分: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]
答案 1 :(得分:0)
您必须遍历列表的元素(字符串)。对于每个这些字符串,请使用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)
答案 2 :(得分:0)
import pandas as pd
lst = ['1.3 2.4 3.6','4.6 5 6.8','6.5 7.2 8.1']
d = [[float(l) for l in i.split()] for i in lst]
col = 'a b c'.split()
df = pd.DataFrame(data = d, columns= col )
print(df)
split()
将字符串拆分为列表,默认情况下,分隔符为空格
d = [[float(l) for l in i.split()] for i in lst]
这里使用的是列表推导,其中遍历lst
中的每个元素并分割字符串
'1.3 2.4 3.6'
进入列表[1.3, 2.4, 3.6]
,然后使用float(l)
进行类型转换,使其浮起
输出:
a b c
0 1.3 2.4 3.6
1 4.6 5.0 6.8
2 6.5 7.2 8.1
答案 3 :(得分:0)
首先,您需要分离列表的每个元素,然后可以再次将其拆分并转换为浮点数
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方法进行优化,但故意使它更易于理解。