在Python的pandas库中,虽然没有直接提供类似Excel中按位置分割文本的功能,但可以通过一些间接的方法来实现这一需求。以下是一种可能的解决方案:
以下是一个示例代码,展示如何使用pandas按位置将文本分割成多个列:
import pandas as pd
# 示例数据
data = [
'John Doe|30|New York',
'Jane Smith|25|Los Angeles',
'Mike Johnson|40|Chicago'
]
# 创建DataFrame
df = pd.DataFrame(data, columns=['raw_data'])
# 定义分割位置
split_positions = [0, 10, 15, 25] # 这些位置应根据实际数据进行调整
# 使用apply方法和lambda函数按位置分割文本
df[['first_name', 'last_name', 'age', 'city']] = df['raw_data'].apply(
lambda x: pd.Series([x[split_positions[0]:split_positions[1]].strip(),
x[split_positions[1]:split_positions[2]].strip(),
x[split_positions[2]:split_positions[3]].strip()]))
)
# 删除原始列
df.drop('raw_data', axis=1, inplace=True)
print(df)
apply
方法和lambda
函数按定义的位置分割文本,并将结果分配给新的列。通过这种方法,你可以实现类似Excel中按位置进行“文本到列”的转换。
领取专属 10元无门槛券
手把手带您无忧上云