Unique
3:107912234-107912321(-)
4:107913333-107913322(+)
Y:222002110-221002100(+)
MT:34330044-343123232(-)
X:838377373-834121212(+)
〜400,000行,不同的字符串.如何将它分成同一个df中的4个不同的列,如果只有一个分隔符,我可以使用df.str(“,”),但由于它有不同的分隔符,我迷路了.
预期产量:
chr start end strand
3 107912234 107912321 -
4 107913333 107913322 +
Y 222002110 221002100 +
MT 34330044 343123232 -
X 838377373 834121212 +
解决方法:
你可以使用extract
:
df1 = df['Unique'].str.extract("(?P<ch>.*?):(?P<start>\d+)-(?P<end>\d+)\((?P<strand>[-+])",
expand=True)
print (df1)
ch start end strand
0 3 107912234 107912321 -
1 4 107913333 107913322 +
2 Y 222002110 221002100 +
3 MT 34330044 343123232 -
4 X 838377373 834121212 +
感谢A-Za-z的建议 – 如果数据不总是 – 在strand列中:
df1 = df['Unique'].str.extract("(?P<ch>.*?):(?P<start>\d+)-(?P<end>\d+)\((?P<strand>.*)\)",
expand=True)
print (df1)
ch start end strand
0 3 107912234 107912321 -
1 4 107913333 107913322 +
2 Y 222002110 221002100 +
3 MT 34330044 343123232 -
4 X 838377373 834121212 +
print (df.join(df1))
Unique ch start end strand
0 3:107912234-107912321(-) 3 107912234 107912321 -
1 4:107913333-107913322(+) 4 107913333 107913322 +
2 Y:222002110-221002100(+) Y 222002110 221002100 +
3 MT:34330044-343123232(-) MT 34330044 343123232 -
4 X:838377373-834121212(+) X 838377373 834121212 +
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。