我在这里找到了一个剪切字符串的解决方案:使用s = '247451517328'切片的Split string every nth character?。但是,我如何才能将其应用于数据处理呢?例如数据格式df
A B
1 *N8111111.
2 BC1111111*
3 77N01101.*应该变成(每隔一个字符切成一片)
A B C D E F
1 *N 81 11 11 1.
2 BC 11 11 11 1*
3 77 N0 11 01 .*我试过了
from more_itertools import sliced
df.str.sliced('1234567890', 2)但这是行不通的,因为str没有“切片”的方法。
发布于 2021-01-06 11:20:26
您可以使用str.findall
df[['A']].join(pd.DataFrame(df['B'].str.findall(r'.{2}|.{1}').tolist())) A 0 1 2 3 4
0 1 *N 81 11 11 1.
1 2 BC 11 11 11 1*
2 3 77 N0 11 01 .*发布于 2021-01-06 11:13:54
您的解决方案将适用于apply,因为slice只接受一个字符串,而不是一个系列:
from more_itertools import sliced
df[['A']].join(pd.DataFrame(df['B'].apply(lambda x: sliced(x, 2)).tolist())) A 0 1 2 3 4
0 1 *N 81 11 11 1.
1 2 BC 11 11 11 1*
2 3 77 N0 11 01 .*https://stackoverflow.com/questions/65594614
复制相似问题