[英]Extract multiple occurrences of string from dataframe column and parse into separate columns
[英]Extract String Data From DataFrame Column To Separate Columns
我有一个如下所示的数据框列:
df['out_column']
0 Out 0: 0.024 Out 1: 0.005
1 Out 0: 0.024 Out 1: 0.009
2 Out 0: 0.024 Out 1: 0.009
3 Out 0: 0.024 Out 1: 0.01
4 Out 0: 0.024 Out 1: 0.011
5 Out 0: 0.017 Out 1: 0.018
6 Out 0: 0.146 Out 1: 0.081
7 Out 0: 0.001 Out 1: 0.002
8 Out 0: 0.022 Out 1: 0.009
9 Out 0: 0.012 Out 1: 0.008
如何将该列上的数据分开以创建到具有Out 0:
和Out 1:
前面的值的其他列? 预期结果是:
col1 col2
0 0.024 0.005
1 0.024 0.009
2 0.024 0.009
3 0.024 0.01
4 0.024 0.011
5 0.017 0.018
6 0.146 0.081
7 0.001 0.002
8 0.022 0.009
9 0.012 0.008
您可以使用extractall
:
df[['col1', 'col2']] = df['out_column'].str.extractall(
pat=r'.*?\s+\d+:\s+([\d.]+)').unstack(-1)
OUTPUT:
out_column col1 col2
0 Out 0: 0.024 Out 1: 0.005 0.024 0.005
1 Out 0: 0.024 Out 1: 0.009 0.024 0.009
2 Out 0: 0.024 Out 1: 0.009 0.024 0.009
3 Out 0: 0.024 Out 1: 0.01 0.024 0.01
4 Out 0: 0.024 Out 1: 0.011 0.024 0.011
5 Out 0: 0.017 Out 1: 0.018 0.017 0.018
6 Out 0: 0.146 Out 1: 0.081 0.146 0.081
7 Out 0: 0.001 Out 1: 0.002 0.001 0.002
8 Out 0: 0.022 Out 1: 0.009 0.022 0.009
9 Out 0: 0.012 Out 1: 0.008 0.012 0.008
注意:如果需要,请使用df = df.drop('out_columns', 1)
。
使用带有Out 1
和Out 2
的常规模式,您可以执行str.extract
并使用.
几次*
print(df['out_column'].str.extract('Out 0: (.*) Out 1: (.*)'))
0 1
0 0.024 0.005
1 0.024 0.009
2 0.024 0.009
3 0.024 0.01
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.