如何提取数据表ColumnB列中每行列表的首个元素?
提取数据表ColumnB列每行列表的第一个元素
原始数据表:
| ColumnA | ColumnB |
|---|---|
| first | c(1, 2, 3) |
| second | c(4, 5, 6) |
| third | c(7, 8, 9) |
期望结果:
| ColumnA | ColumnB |
|---|---|
| first | 1 |
| second | 4 |
| third | 7 |
Python 解决方案
如果你的ColumnB列是字符串格式的类似R向量结构(如示例中的c(1,2,3)),可以通过字符串解析结合lambda函数提取首个元素:
import pandas as pd # 构造原始数据 df = pd.DataFrame({ 'ColumnA': ['first', 'second', 'third'], 'ColumnB': ['c(1, 2, 3)', 'c(4, 5, 6)', 'c(7, 8, 9)'] }) # 处理ColumnB:解析字符串并取第一个元素 df['ColumnB'] = df['ColumnB'].apply( lambda x: int(x.strip('c()').split(',')[0].strip()) ) print(df)
代码逻辑拆解:
x.strip('c()'):移除字符串首尾的c(和),得到'1, 2, 3'.split(','):按逗号分割为字符串列表['1', ' 2', ' 3'][0].strip():取列表第一个元素并去除空格,最后转成整数
如果ColumnB已经是原生Python列表(比如[1,2,3]),直接用lambda取索引0即可:
df['ColumnB'] = df['ColumnB'].apply(lambda x: x[0])
内容的提问来源于stack exchange,提问作者Propostus
相关产品推荐
相关产品推荐

