提问人:datagolfer 提问时间:10/16/2023 更新时间:10/16/2023 访问量:43
将 DataFrame 中的 5 或 6 个字符字符串拆分为两列 3-2 或 3-3 列
Split 5 or 6 character string in DataFrame into two 3-2 or 3-3 columns
问:
我有一个列,我想拆分为两个新列......第一列是 5 或 6 个字符,当第一列是 6 个字符时,生成的列是 3-3,当第一列是 5 个字符时,结果是 3-2
下面是一个示例
12345 123 45
456789 456 789
我已经尝试了.str[3:]和.str[-2:],但这显然不知道哪个是合适的长度
答:
1赞
nokla
10/16/2023
#1
您可以使用:
s = "12345"
print(s[:3], s[3:])
s[:3]
返回字符串的前 3 个字符s[3:]
返回从索引 3 开始的字符串
s[-2:]
将始终返回最后两个字符。
例:
import pandas as pd
df = pd.DataFrame(["12345", "123456", "abcde"], columns=["Strings"])
df['start'] = df['Strings'].str[:3]
df['end'] = df['Strings'].str[3:]
print(df)
输出:
Strings start end
0 12345 123 45
1 123456 123 456
2 abcde abc de
评论
0赞
Scott Boston
10/16/2023
您可以在 .str 表示法中使用此切片:和df['Col1'].str[:3]
df['Col1'].str[3:]
2赞
Panda Kim
10/16/2023
#2
例
import pandas as pd
s = pd.Series(['12345', '456789'])
s
0 12345
1 456789
dtype: object
法典
使用 str.extract
s.str.extract(r'(.{3})(.+)')
输出:
0 1
0 123 45
1 456 789
评论