# 数据清洗:Python将一列数据拆分成多列

import pandas as pd

test_data = pd.read_excel('./test_split.xlsx')
columns = test_data.columns.to_list() 
print(columns)
test_data.head()

def col_split(data):

    '''统计需要进行拆分的字段:如果某一列所有非空取值均包含“:”,而不包含“http:”和“https:”,则需要拆分
    '''

    split_col = []
    for i in columns:
        num = 0
        temp = data[i].dropna()
        if len(temp)>0 : # 对于有取值的字段,判断是否需要拆分
            for j in temp:
                if ":" in str(j) and 'https:' not in str(j) and 'http:' not in str(j) :
                    num+=1
            if num == len(temp):
                print("需拆分:",i)
                split_col.append(i)

    print("需要拆分的字段:",split_col)

    '''拆分数据并进行保存
    '''
    cleaned_data = pd.DataFrame()
    for i in columns:
        if i in split_col:
            temp = data[i].str.split(':',expand=True) 
            cleaned_data[i] = temp[1] # 保留右侧一列
            print(cleaned_data)

        else:
            cleaned_data[i] = data[i]

    print("--- End ---")
    
    return cleaned_data

col_split(test_data)

在这里插入图片描述
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐