概要表示のため、ちょっとしたDFを作成したい

投稿者: | 2021-12-16

目次

DataFrameの作り方6種(理解してないとだめ)

サンプルデータ作成

import pandas as pd
import numpy as np
import pathlib
import os

p = pathlib.Path('/Users/mbp441/Desktop/test')

df1 = pd.DataFrame(np.random.randint(1, 58, (456,5)), columns=list('ABCDE'))
df2 = pd.DataFrame(np.random.randint(1000, 3000, (2068,5)), columns=list('ABCDE'))

df1.to_csv(p / 'test1.csv')
df2.to_csv(p / 'test2.csv')

f_list = os.listdir(p)
f_list = sorted(f_list)

# f_list > test1.csv, test2.csv

今回は辞書からDF作成

data = []

for f_name in f_list:
    
    df = pd.read_csv(p / f_name)
    
    d = {} # ループ外に出さない.エラーになる
    d['ファイル名'] = f_name
    d['件数'] = len(df)
    
    data.append(d)

c_df = pd.DataFrame(data)
c_df

一部の列を3桁区切りにしたい

# OKパターン
c_df.style.format({'件数': ':,'})

# NGパターン(理由:型そのものが変更されるため)
c_df2 = c_df
c_df2['件数'] = c_df2['件数'].map('{:,}'.format)
c_df2