pands 表头字段自适应

# fields = ['Unnamed: 0', 'Unnamed: 1', '合计:', '人民币元', '美元', '合计:.1', '美元.1', '沙特里亚尔', '合计:.2', '人民币元.1', '美元.2',
#           '沙特里亚尔.1', '合计:.3', '美元.3', '沙特里亚尔.2']
cleaned_sentence = []
a = 0
while a < len(fields):
    current_word = fields[a]
    if current_word == "Unnamed: 0" and len(cleaned_sentence) == 0:
        print("0")

        cleaned_sentence.append(fields[0:fields.index("合计:")])
        a += 1
    elif current_word == "合计:" and len(cleaned_sentence) > 0:
        print("1")

        cleaned_sentence.append(fields[fields.index("合计:"):fields.index("合计:.1")])
        a += 1
    elif current_word == "合计:.1" and len(cleaned_sentence) > 0:
        print("2")
        sub_list = fields[fields.index("合计:.1"):fields.index("合计:.2")]
        # sub_list.append(fields[-1])
        cleaned_sentence.append(sub_list)
        a += 1
    elif current_word == "合计:.2" and len(cleaned_sentence) > 0:
        print("3")
        sub_list = fields[fields.index("合计:.2"):fields.index("合计:.3")]
        # sub_list.append(fields[-1])
        cleaned_sentence.append(sub_list)
        a += 1
    elif current_word == "合计:.3" and len(cleaned_sentence) > 0:
        print("4")
        sub_list = fields[fields.index("合计:.3"):]
        # sub_list.append(fields[-1])
        cleaned_sentence.append(sub_list)
        a += 1
    else:
        a += 1
print(cleaned_sentence)

for each in cleaned_sentence:
    if each[0] == "Unnamed: 0":
        print("find")
        # each = str(each).replace("Unnamed: 0","单位编号")
        each[0] = "单位编号"
        # each = str(each).replace("Unnamed: 1","单位名称")
        each[1] = "单位名称"
        print(each)
    if each[0] == "合计:":
        for i in range(0, len(each)):
            if "合计:" in each[i]:
                # each = str(each).replace("合计:.1", "期初合计")
                each[i] = "期初合计"
            elif "人民币元" in each[i]:
                # each = str(each).replace("人民币元", "期初人民币元")
                each[i] = "期初人民币元"
            elif "美元" in each[i]:
                each[i] = "期初美元"
            elif "沙特里亚尔" in each[i]:
                # each = str(each).replace("沙特里亚尔", "期初沙特里亚尔")
                each[i] = "期初沙特里亚尔"
        print(each)
    if each[0] == "合计:.1":
        for i in range(0, len(each)):
            if "合计:.1" in each[i]:
                # each = str(each).replace("合计:.1", "期初合计")
                each[i] = "本期增加合计"
            elif "人民币元" in each[i]:
                # each = str(each).replace("人民币元", "期初人民币元")
                each[i] = "本期增加人民币元"
            elif "美元" in each[i]:
                each[i] = "本期增加美元"
            elif "沙特里亚尔" in each[i]:
                # each = str(each).replace("沙特里亚尔", "期初沙特里亚尔")
                each[i] = "本期增加沙特里亚尔"
        print(each)
    if each[0] == "合计:.2":
        for i in range(0, len(each)):
            if "合计:.2" in each[i]:
                # each = str(each).replace("合计:.1", "期初合计")
                each[i] = "本期减少合计"
            elif "人民币元" in each[i]:
                # each = str(each).replace("人民币元", "期初人民币元")
                each[i] = "本期减少人民币元"
            elif "美元" in each[i]:
                each[i] = "本期减少美元"
            elif "沙特里亚尔" in each[i]:
                # each = str(each).replace("沙特里亚尔", "期初沙特里亚尔")
                each[i] = "本期减少沙特里亚尔"
        print(each)
    if each[0] == "合计:.3":
        for i in range(0, len(each)):
            if "合计:.3" in each[i]:
                # each = str(each).replace("合计:.1", "期初合计")
                each[i] = "期末合计"
            elif "人民币元" in each[i]:
                # each = str(each).replace("人民币元", "期初人民币元")
                each[i] = "期末人民币元"
            elif "美元" in each[i]:
                each[i] = "期末美元"
            elif "沙特里亚尔" in each[i]:
                # each = str(each).replace("沙特里亚尔", "期初沙特里亚尔")
                each[i] = "期末沙特里亚尔"
        print(each)
print(cleaned_sentence)
list = []
for each in cleaned_sentence:
    list.extend(each)
print(list)  # 整理好的表头

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在pandas中,我们可以使用`read_csv()`函数来读取CSV格式的文件,并将其转换为DataFrame对象。默认情况下,`read_csv()`函数会将文件的第一行作为表头,即将第一行数据作为DataFrame中每列的名称。例如: ```python import pandas as pd df = pd.read_csv('data.csv') print(df) ``` 输出结果如下: ``` id name age 0 1 Alice 25 1 2 Bob 30 2 3 Charlie 35 3 4 David 40 ``` 在这个例子中,我们读取了一个名为`data.csv`的文件,并将其转换为DataFrame对象。可以看到,输出结果中有三列,分别为`id`、`name`和`age`,这三列数据来自于文件的第一行。如果你不希望将第一行作为表头,可以通过`header=None`参数来禁止读取表头,例如: ```python import pandas as pd df = pd.read_csv('data.csv', header=None) print(df) ``` 输出结果如下: ``` 0 1 2 0 1 Alice 25 1 2 Bob 30 2 3 Charlie 35 3 4 David 40 ``` 在这个例子中,我们使用`header=None`参数来禁止读取表头,并将第一行数据作为普通数据处理。此时输出结果中没有列名,只有数据。如果你希望手动添加列名,可以通过`columns`参数来指定列名,例如: ```python import pandas as pd df = pd.read_csv('data.csv', header=None, names=['id', 'name', 'age']) print(df) ``` 输出结果如下: ``` id name age 0 1 Alice 25 1 2 Bob 30 2 3 Charlie 35 3 4 David 40 ``` 在这个例子中,我们使用`names`参数来手动指定列名,这样输出结果中的列名就和原来的一样了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值