如何从pandas中的文本数据中提取

时间:2017-06-27 05:50:09

标签: python pandas

我有下面的txt文件

1a 2
3b45
 b 6
 c78

我想阅读并提取下面的起始位置

structure=

start length
   1    1
   2    1
   3    2

我想阅读并提取下面的数据框

1   a   2 
3   b  45
nan b   6
nan c  78

然后,提取如下(key =第二列,其中包含'b')

3   b   4  5
nan b  nan 6

并回到原来的

3b45
 b 6

我试过'read_fwf(widths = structure.length) 但我无法弄清楚下一步。

如何阅读,提取和合并?

1 个答案:

答案 0 :(得分:1)

import pandas as pd

df = pd.read_table('sample.txt', header=None)
print(df)
df = df[0].str.extract('(\d*)(\D*\s*)(\d*)', expand=True).applymap(lambda x: x.strip())
print(df)
df = df[df[1].str.contains('b')]
print(df)
print(df[0] + df[1] + df[2])

      0
0  1a 2
1  3b45
2   b 6
3   c78

   0  1   2
0  1  a   2
1  3  b  45
2     b   6
3     c  78

   0  1   2
1  3  b  45
2     b   6

1    3b45
2      b6