2017-06-27 24 views
1

我已經txt中下面如何從文本數據在熊貓

1a 2 
3b45 
b 6 
c78 

文件中提取我想下面像下面

structure= 

start length 
    1 1 
    2 1 
    3 2 

我想閱讀和提取物的起始位置讀取和提取物dataframe like below

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(寬度= structure.length) 但是我不可能找出下一步驟。

如何讀取和提取併合並?

回答

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