本文同步发表于小弟自架网站:微确幸资讯站
import numpy as npimport pandas as pd# 产生8列6栏介于0-100的DataFramedf = pd.DataFrame(np.random.randint(0,100,size=(8, 6)), columns=list('ABCDEF'))for col in df.columns: # 每栏随机产生机率0.5的NaN df[col] = df[col].sample(frac=0.5)df
接下来操作一下,把每列中超过3个NaN的列删除。
df = df.dropna(thresh=3)df
顺便记录一下如何将字串切割成list(源自stacksoverflow),转为栏位名称:
# 第一种方式exam_string = '国文英语数学自然社会公民'n = 2exams = [exam_string[i:i+n] for i in range(0, len(exam_string), n)]df.columns = exams
# 第二种方式from textwrap import wrapexam_string = '国文英语数学自然社会公民'exams = wrap(exam_string, 2)df.columns = exams
# 第三种方式exam_string = '国文英语数学自然社会公民'exams = []while exam_string: exams.append(exam_string[:2]) exam_string = exam_string[2:]df.columns = examsdf