将包含字符串内列表的数据框列拆分为两列

时间:2019-01-09 12:51:57

标签: python string pandas split

我有一个df,其中一列“ vals”在字符串内包含一个列表。我想将其转换为两列“ val1”  和'vals2。我曾尝试拆分和剥离字符串,但找不到实现df中每一行的实现。

    vals
'[12.1, 15.0]'

val1  val2
12.1  15.0

2 个答案:

答案 0 :(得分:3)

stripsplit一起使用,并在必要时强制转换为浮点数,最后在add_prefix前加上前缀:

df = pd.DataFrame({'vals':["'[12.1, 15.0]'","'[12.1, 15.0]'"]})

df = (df['vals'].str.strip("'[]")
               .str.split(', ', expand=True)
               .astype(float)
               .add_prefix('val'))

如果没有缺失的值和性能很重要:

df =  pd.DataFrame([x.strip("'[]").split(', ') for x in df['vals']], 
                    columns = ['val1', 'val2']).astype(float)

答案 1 :(得分:0)

我们在这里雇用NumberFormat.getCompactNumberInstance-

fmt.format(1000)
$5 ==> "1K"

fmt.format(10000000)
$9 ==> "10M"

fmt.format(1000000000)
$11 ==> "1B"