针对一个新数据集可能需要用的一些操作(pandas,numpy) 混合版本2
1 2 3 4 5 6
| import pandas as pd import numpy as np import os import warnings warnings.filterwarnings('ignore')
|
增
两个df拼接
1 2 3 4
| df = df.set_index('station_id').join(df2.set_index('station_id'))
|
apply的使用
1 2 3 4 5 6 7
| def func(row): return row.x + row.y df['sum'] = df.apply(func, axis=1)
df['sum'] = df.apply(lambda row : row.x + row.y, axis=1)
|
apply 的加速
Link1 Zhihu
Link2 CSDN
删
删除残缺
查
获取某几些数据
1 2 3
| df = df.loc['columns1', 'columns2', 'columns3']
df = df[['columns1', 'columns2', 'columns3']]
|
过滤一列或几列的数据
判断条件记得用 & ,|, e.g.,
1 2 3 4 5 6 7 8
| df['start_time'] = pd.to_datetime(df['start_time']) df['end_time'] = pd.to_datetime(df['end_time'])
import datetime open_time = datetime.datetime.strptime('2019-07-25 00:00:00', '%Y-%m-%d %H:%M:%S') close_time = datetime.datetime.strptime('2019-07-25 23:59:59', '%Y-%m-%d %H:%M:%S')
df = df[(df['start_time'] >= open_time) & (df['end_time'] <= close_time) & (df['end_time'] > df['start_time'])]
|
group_by 的使用
举例:如果想按照 年份 和 城市 统计数量
1 2 3 4 5
| res = np.zeros(shape=[num_cities, num_years]) group = df.groupby(['city', 'year']) for (c, y), sub in group: res[c, y] = len(sub)
|
改
改变数据类型
1
| df['column'] = df['column'].astype(int)
|
改列名
1
| df.rename(columns={'c1': 'c2', 'c3': 'c4'}, inplace=True)
|