python表格操作求解

img

img


有一张表,如何把代码列127006,118006按照前两位如果为11,前面加abc,22前面加def再覆盖?自己琢磨的办法和思路存在很大问题,求指点

你可能写的确实有点乱,我给你规整了一下,你运行看下是不是这个意思:
运行结果:

img

代码:

import pandas as pd

file_path = "C:/Users/you/Desktop/zb/选中.x1sx"  # 替换为实际的文件路径

# 读取 Excel 文件到 DataFrame
df = pd.read_excel(file_path)

condition_a = df['代码'].astype(str).str[:2] == '11'  # 判断前两位是否为 '11'
condition_b = df['代码'].astype(str).str[:2] == '22'  # 判断前两位是否为 '22'

df.loc[condition_a, '代码'] = 'abc' + df.loc[condition_a, '代码'].astype(str)
df.loc[condition_b, '代码'] = 'def' + df.loc[condition_b, '代码'].astype(str)

# 将修改后的数据保存到新的 Excel 文件
output_file_path = "C:/Users/you/Desktop/zb/选中.x1sx"  # 替换为输出文件的路径
df.to_excel(output_file_path, index=False)

1.你既然想要前两位,那总要先把前两位切片出来吧,你切片的代码呢
startwith也是个办法,但是我看你把代码注释了?
2.==11是几个意思,str怎么可以和int去比呢

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7695582
  • 你也可以参考下这篇文章:基于抽象基类ABC实现清晰的Python代码
  • 以下回答来自chatgpt:

    解决方案

    首先,我们需要使用Python的pandas库来操作表格数据。首先,我们需要将表格数据导入到Python中。假设表格文件名为data.xlsx,我们可以使用pandas的read_excel函数来导入数据。代码如下:

    import pandas as pd
    
    # 读取表格数据
    df = pd.read_excel('data.xlsx')
    

    接下来,我们可以使用pandas的apply函数来对每个数值进行转换操作。代码如下:

    def convert_value(value):
        # 判断前两位是11还是22
        if str(value)[:2] == '11':
            return 'abc' + str(value)
        elif str(value)[:2] == '22':
            return 'def' + str(value)
        else:
            return value
    
    # 对指定列的数值进行转换
    df['列名'] = df['列名'].apply(convert_value)
    

    上述代码中的'列名'需要替换为你的表格中需要转换的列的名称。代码中的convert_value函数根据转换规则进行转换操作,并返回转换后的数值。最后,我们将转换后的数值覆盖原来的数值。

    最后,我们可以使用pandas的to_excel函数将处理后的数据重新保存到原来的表格文件中。代码如下:

    # 保存到原来的表格文件中
    df.to_excel('data.xlsx', index=False)
    

    上述代码中的'data.xlsx'需要替换为你的表格文件的名称。

    完整的解决方案如下:

    import pandas as pd
    
    def convert_value(value):
        # 判断前两位是11还是22
        if str(value)[:2] == '11':
            return 'abc' + str(value)
        elif str(value)[:2] == '22':
            return 'def' + str(value)
        else:
            return value
    
    # 读取表格数据
    df = pd.read_excel('data.xlsx')
    
    # 对指定列的数值进行转换
    df['列名'] = df['列名'].apply(convert_value)
    
    # 保存到原来的表格文件中
    df.to_excel('data.xlsx', index=False)
    

    请将上述代码中的'data.xlsx'和'列名'分别替换为你的表格文件的名称和需要转换的列的名称。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^