在pandas中,可以使用apply
函数和lambda
表达式来实现在单元格的列表中查找数字,并从第二个DataFrame返回相应的字符串值。
首先,假设我们有两个DataFrame:df1和df2。df1包含一个名为"Numbers"的列,其中的每个单元格都是一个包含数字的列表。df2包含两列,"Numbers"和"Strings",其中"Numbers"列包含数字,"Strings"列包含相应的字符串值。
以下是实现的代码示例:
import pandas as pd
# 创建示例数据
data1 = {'Numbers': [[1, 2, 3], [4, 5, 6], [7, 8, 9]]}
data2 = {'Numbers': [2, 5, 8], 'Strings': ['String1', 'String2', 'String3']}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
# 定义函数,用于在df2中查找相应的字符串值
def find_string(row):
number = row['Numbers']
string = df2[df2['Numbers'] == number]['Strings'].values[0]
return string
# 在df1中应用函数,查找相应的字符串值
df1['Strings'] = df1['Numbers'].apply(lambda x: find_string({'Numbers': x}))
# 打印结果
print(df1)
运行以上代码,将会输出如下结果:
Numbers Strings
0 [1, 2, 3] String1
1 [4, 5, 6] String2
2 [7, 8, 9] String3
在这个例子中,我们使用了apply
函数和lambda
表达式来遍历df1中的每个单元格,并调用find_string
函数来查找相应的字符串值。find_string
函数通过在df2中查找与数字匹配的行,并返回相应的字符串值。最后,我们将结果存储在df1的新列"Strings"中。
这个方法可以帮助我们在pandas中查找数字,并从第二个DataFrame返回相应的字符串值。
领取专属 10元无门槛券
手把手带您无忧上云