'22/02/28更新:時間型(日付型)へ変換するコードを追記
本記事では、pandas(パンダス)を活用したデータ処理の頻出操作の雛形コードを載せました。下図はpandasによるデータ操作の一例です。Excel(エクセル)のような表形式で、行列データを自由自在に操作することが出来ます。

備忘録として、カテゴリを次の5つに分けて逆引きできるように記載しています。
■1. データフレーム型を作成する(ファイルを読み込む、追記する、空を作成する)
■2. ファイルへ書き出す
■3. データフレームを調べる
■4. データを抽出する
■5. 列(カラム)を操作する
文中のcolumn_name_listは、次のようなリストを意味します。
column_name_list = ['列名1', '列名2', '列名3']
■1. データフレーム型を作成する(ファイル読んだり)
df = pd.read_excel(file_path, sheet_name = 'Sheet1')
df = pd.read_csv(file_path1,
sep = ',',
index_col = 0,
header = 0,
skiprows = [1, 2],
encoding = 'utf-8',
)
with codecs.open(file_path, mode='r', encoding='utf-8', errors='ignore') as f:
df = pd.read_table(f,
delimiter = ' ',
names = column_name_list,
)
df = pd.DataFrame(data_list,
columns = column_name_list)
df = pd.DataFrame(index=[], columns=column_name_list)
column_name_list = (["dummy_{:02d}".format(x) for x in range(100)])
df3 = pd.concat([df, df2])
df3 = pd.concat([df, df2], axis=1)
■2. ファイルへ書き出す
df.to_csv('data.csv',
sep=',',
mode='w',
index=False,
#header=column_name_list #float_format='%.12e',
encoding='utf-8',
)
■3. データフレームを調べる
row, col = df.shape
print(df.dtypes)
df = df.groupby('列名').size()
df = df.describe()
■4. データを抽出する
mylist = df['列名'].values.tolist()
df = df.groupby('列名').count()
df3 = df[df['列名'].isin(df2['列名2'])]
df2 = df[df['列名'].isin(リスト)]
x_min = df['列名'].min()
x_max = df['列名'].max()
df_extract = df[(df['列名'] >= 17) & (df['列名'] <= 25)]
df3 = df[df['列名'] == 'ほげほげ']
■5. 列(カラム)を操作する
df = df.sort_values(['列名'], ascending=True)
df.index = np.arange(1, len(df) + 1)
df.set_index('列名', inplace=True)
df.reset_index(drop=True, inplace=True)
df['新列名'] = df['列名']
df2 = df.loc[:,~df.columns.duplicated()]
df2 = df.drop(['列名'], axis=1)
df2 = df[['列名A', '列名B']]
No_list = np.arange(1, len(df) + 1).tolist()
df['列名'] = No_list
df = df.iloc[:, [5, 0, 1, 2, 3, 4]]
df = df.loc[:, ('列名C', '列名A', '列名B')]
df['列名'] = df['列名'] * 1e9
df = df.assign(新列名 = [x + '_' + y for x, y in zip(df['列名1'], df['列名2'])])
df['新列名'] = df['列名'].apply(lambda x: f"入れたい文字列{x}")
df3 = pd.concat([df, df2], axis=1)
df2 = df.copy()
df2['列名'] = df['列名'].astype('str')
以上
<広告>
リンク