从pandas DataFrame中另一列中的位置给定的字符串列中提取字符[重复]

Posted

技术标签:

【中文标题】从pandas DataFrame中另一列中的位置给定的字符串列中提取字符[重复]【英文标题】:Extract character from a string column given by position in another column in pandas DataFrame [duplicate] 【发布时间】:2022-01-03 06:30:32 【问题描述】:

在 pandas 数据框中,我想从另一列给出的索引处的字符串列中提取一个字符。例如,给定以下DataFrame

import pandas as pd

df = pd.DataFrame("s": ["ACGT", "AAGA"], "i": [0, 2])
 
#       s  i
# 0  ACGT  0
# 1  AAGA  2

我想为每一行提取s[i],得到

      s  i  extracted
0  ACGT  0  A
1  AAGA  2  G

我想我可以做类似的事情

df["s"].str.get(df["i"])

但是.get() 只接受一个整数参数,而不是一个系列。

完成这项工作的最佳方法是什么?

【问题讨论】:

【参考方案1】:

试试 lambda

df['extracted'] = df.apply(lambda x: x['s'][x['i']],axis=1)

      s  i extracted
0  ACGT  0         A
1  AAGA  2         G

【讨论】:

以上是关于从pandas DataFrame中另一列中的位置给定的字符串列中提取字符[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何计算包含一组列中的值和 Pandas 数据框中另一列中的另一个值的行数?

根据 Pandas 中另一列中的索引从列中获取数据

用 Pandas 将 DataFrame 中某些列和行的值替换为同一 DataFrame 中另一列的值

将语料库中的名称部分匹配到 Pandas 数据框中另一列中的名称

Pandas:如何在第二个 DataFrame 的另一列中查找子字符串位置

Pandas DataFrame:使用列值在另一列中切片字符串