This is who I am

Python學習筆記: Pandas快速製作含NaN的DataFrame

import numpy as np
import pandas as pd

# 產生8列6欄介於0-100的DataFrame
df = 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 = 2
exams = [exam_string[i:i+n] for i in range(0, len(exam_string), n)]
df.columns = exams
# 第二種方式
from textwrap import wrap

exam_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 = exams
df

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *