我有一个df,其中一列“ vals”在字符串内包含一个列表。我想将其转换为两列“ val1” 和'vals2。我曾尝试拆分和剥离字符串,但找不到实现df中每一行的实现。
vals
'[12.1, 15.0]'
val1 val2
12.1 15.0
答案 0 :(得分:3)
将strip
与split
一起使用,并在必要时强制转换为浮点数,最后在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"