冰菲 发表于 2024-5-20 17:50:37

python 批量操作Excel中某列代码,对应的代码名称




产品        代码                                代码             名称
A        LP221                        LP221        完成
B        LP24                                LP224        未完成
C        无                                LP324        待确认
D        LP324                                       

如果代码列为无,代码列默认无,如果代码列为字母加数字显示为中文名称


最终显示结果为


产品        代码                               
A        完成               
B        未完成                       
C        无                               
D        待确认       

FishC 发表于 2024-5-20 17:50:45

好的,我来给你提供一个可以实现这个功能的Python代码:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('your_file.xlsx')

# 创建代码名称字典
code_name_dict = {
    'LP221': '完成',
    'LP224': '未完成',
    'LP324': '待确认'
}

# 根据代码列填充名称列
df['名称'] = df['代码'].map(code_name_dict)
df.loc.isnull(), '名称'] = '无'

# 输出结果
print(df[['产品', '代码', '名称']])

这段代码首先读取Excel文件,然后创建了一个代码和名称的对应字典。接下来,使用`map()`函数根据代码列填充名称列。对于代码列为空的行,直接填充为'无'。最后输出包含产品、代码和名称三列的结果。

这种方法非常灵活,如果需求有变,只需要修改代码和名称的对应关系即可。希望这个代码对你有帮助,如果还有什么不明白的可以继续问我。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

冰菲 发表于 2024-5-20 18:37:21

FishC 发表于 2024-5-20 17:50
好的,我来给你提供一个可以实现这个功能的Python代码:




无没有显示,直接显示空白

FishC 发表于 2024-5-20 18:37:29

冰菲 发表于 2024-05-20 18:37
无没有显示,直接显示空白

非常抱歉,我在之前的代码中确实有错误。我们需要将“无”替换为“代码列默认值”,即空字符串。下面是修正后的代码:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('your_file.xlsx')

# 创建代码名称字典
code_name_dict = {
    'LP221': '完成',
    'LP224': '未完成',
    'LP324': '待确认'
}

# 根据代码列填充名称列
df['名称'] = df['代码'].map(code_name_dict).fillna('')

# 输出结果
print(df[['产品', '代码', '名称']])

在这个修正后的代码中,我们使用了`fillna()`函数来将NaN(空值)替换为指定的默认值,这里是空字符串。同时,我们还将输出结果限定为只包含'产品'、'代码'和'名称'三列。这样就可以确保在“代码列”为空时,名称列会显示为空字符串。

希望这次的解释能够解决你的问题,如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

冰菲 发表于 2024-5-21 10:29:47

FishC 发表于 2024-5-20 18:37
非常抱歉,我在之前的代码中确实有错误。我们需要将“无”替换为“代码列默认值”,即空字符串。下面是 ...

代码的变成了中文名称,但是原来的“无”,没有了

FishC 发表于 2024-5-21 10:29:55

冰菲 发表于 2024-05-21 10:29
代码的变成了中文名称,但是原来的“无”,没有了

非常抱歉之前的回答有误导。以下是修正后的代码:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('your_file.xlsx')

# 创建代码名称字典
code_name_dict = {
    'LP221': '完成',
    'LP224': '未完成',
    'LP324': '待确认'
}

# 根据代码列填充名称列
df['名称'] = df['代码'].map(code_name_dict).fillna('无')

# 输出结果
print(df[['产品', '代码', '名称']])

在这个修正后的代码中,我们使用`map()`函数根据字典将代码转换为对应的中文名称,然后使用`fillna()`函数将NaN(空值)替换为默认值'无'。最后,我们只输出包含'产品'、'代码'和'名称'三列的结果。

希望这次的解释和代码能够正确满足你的需求。如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

冰菲 发表于 2024-5-21 10:33:02

FishC 发表于 2024-5-21 10:29
非常抱歉之前的回答有误导。以下是修正后的代码:




代码不全的情况下,我想要的是代码匹配不到的显示未知,无的仍然显示无

FishC 发表于 2024-5-21 10:33:15

冰菲 发表于 2024-05-21 10:33
代码不全的情况下,我想要的是代码匹配不到的显示未知 ...

非常抱歉之前的回答依然有误导。以下是修正后的代码:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('your_file.xlsx')

# 创建代码名称字典
code_name_dict = {
    'LP221': '完成',
    'LP224': '未完成',
    'LP324': '待确认'
}

# 根据代码列填充名称列
df['名称'] = df['代码'].map(code_name_dict).fillna('未知')

# 将无修改回原值
df.loc == '无', '名称'] = '无'

# 输出结果
print(df[['产品', '名称']])

在这个修正后的代码中,我们使用`map()`函数根据字典将代码转换为对应的中文名称,然后使用`fillna()`函数将NaN(空值)替换为默认值'未知'。同时,我们使用`loc`函数将代码列为'无'的行的名称列修改为'无'。最后,我们只输出包含'产品'和'名称'两列的结果。

希望这次的解释和代码能够正确满足你的需求。如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

冰菲 发表于 2024-5-21 10:38:39

FishC 发表于 2024-5-21 10:33
非常抱歉之前的回答依然有误导。以下是修正后的代码:

import pandas as pd


无还是显示未知

FishC 发表于 2024-5-21 10:38:48

冰菲 发表于 2024-05-21 10:38
无还是显示未知

非常抱歉,之前还是有些错误。以下是修正后的代码:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('your_file.xlsx')

# 创建代码名称字典
code_name_dict = {
    'LP221': '完成',
    'LP224': '未完成',
    'LP324': '待确认'
}

# 根据代码列填充名称列
df['名称'] = df['代码'].map(code_name_dict).fillna(df['名称'])

# 输出结果
print(df[['产品', '代码', '名称']])

在这个修正后的代码中,我们使用`map()`函数根据字典将代码转换为对应的中文名称,并使用`fillna()`函数将NaN(空值)替换为原本的名称值。这样,无的情况就会保持为原来的“无”。

希望这次的解释和代码能够正确满足你的需求。如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: python 批量操作Excel中某列代码,对应的代码名称