futui 发表于 2023-4-23 20:30:26

关于取字典第二个值匹配的问题,求帮忙,谢谢

df = pd.DataFrame({'A': ,
                   'B': ['a', 'b', 'c', 'd']})

# 创建字典
my_dict = {1: ['one', 'first'],
         2: ['two', 'second']}

要运用字典创建一个新列,运用到A列,需要取字典的第二个值,要怎么操作,求帮忙,谢谢

0   first
1    second
2   first
3    second

歌者文明清理员 发表于 2023-4-23 20:31:59

本帖最后由 歌者文明清理员 于 2023-4-23 20:33 编辑

要运用字典创建一个新列,需要先将 A 列中的每个数值作为字典的键,然后取出对应的值中的第二个元素。可以使用 apply 和 lambda 函数来实现:

import pandas as pd

df = pd.DataFrame({'A': , 'B': ['a', 'b', 'c', 'd']})

# 创建字典
my_dict = {1: ['one', 'first'], 2: ['two', 'second']}

# 使用 apply 和 lambda 函数取出字典中的第二个元素
df['C'] = df['A'].apply(lambda x: my_dict)

print(df['C'])

输出结果为:

0   first
1    second
2   first
3    second
Name: C, dtype: object

isdkz 发表于 2023-4-23 20:33:22

您可以使用Pandas的`map`函数将A列的值映射到字典的第二个值,然后将结果赋给新列。以下是具体操作:

import pandas as pd

df = pd.DataFrame({'A': ,
                   'B': ['a', 'b', 'c', 'd']})

my_dict = {1: ['one', 'first'],
         2: ['two', 'second']}

# 提取字典的第二个值
my_dict_second_values = {key: value for key, value in my_dict.items()}

# 使用map函数将A列映射到字典的第二个值,并将结果赋给新列C
df['C'] = df['A'].map(my_dict_second_values)

print(df)


输出结果:

   AB       C
01a   first
12bsecond
21c   first
32dsecond


这样,您就成功地将A列的值映射到字典的第二个值,并将结果存储在新列C中。
页: [1]
查看完整版本: 关于取字典第二个值匹配的问题,求帮忙,谢谢