分隔列表-Python中元素中的每个字符串

时间:2019-02-04 12:45:06

标签: python list

我的元素列表如下:

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

每个元素几乎没有观察点,并用空格隔开。

我想将其转换为数据框。我被困住了,如何将每个观察结果和表格数据框分开?

4 个答案:

答案 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方法进行优化,但故意使它更易于理解。

相关问题