如何在Pandas中从现有Series提取并操作内部数据?
解决方法
你的Sequence Numbers列存储的是空格分隔的字符串,不是Python列表,所以直接用常规切片只会对整个字符串生效,没法操作里面的单个数字。先把字符串拆成可操作的列表,再处理就简单了。
先给出可复现的示例代码:
import pandas as pd # 构造你的DataFrame data = { "Work Date": ["01/01/2023", "02/01/2023", "03/01/2023"], "Sequence Numbers": ["01 02 03 04 05 06", "07 08 09 10 11 12", "13 14 15 16 17 18"] } df = pd.DataFrame(data)
1. 提取前N个数值
用str.split()把字符串拆成列表,再用str[:N]切片,最后可以转成字符串或保留列表:
# 提取前3个数字,合并成字符串列 df["First 3 Sequences"] = df["Sequence Numbers"].str.split().str[:3].str.join(" ") # 如果需要保留列表格式 df["First 3 List"] = df["Sequence Numbers"].str.split().str[:3]
2. 拆分末尾值到新列
直接取拆分后列表的最后一个元素:
df["Last Sequence"] = df["Sequence Numbers"].str.split().str[-1]
3. 把所有值拆分成单独列
用str.split(expand=True)直接将拆分后的列表展开成多列,再合并到原DataFrame:
# 拆分出所有单独列 split_sequences = df["Sequence Numbers"].str.split(expand=True) # 给新列命名(可选) split_sequences.columns = [f"Seq_{i+1}" for i in range(split_sequences.shape[1])] # 和原表合并 df = pd.concat([df, split_sequences], axis=1)
核心逻辑就是先把字符串类型的序列拆成列表,再利用Pandas的str访问器进行切片或展开操作,就能实现你要的所有需求。
内容的提问来源于stack exchange,提问作者VJ1222
相关产品推荐
相关产品推荐

