-
index: 如何定义名称,如何回复从0到N排序, 如何删除/增加某一行,如何根据条件获取某些行
- 如何回复从0到N排序:frm.rename(index=lambda x: x + 1)/frm.reset_index(drop=True)
- 如何删除某一行 frm.drop([x,y]),
- 根据条件获取某些行 :frm['col'].isin([key])
- 根据条件获取某些行:frm['col'].str.contains(正则表达式内容)
- 根据条件获取某些行 :frm[frm['col']>xx]
-
columns: 如何改变名称,如何删除/增加某一列, 如何根据条件获取某些列
- 改变列名:frm.rename(columns={'old_name': 'new_ name'})
- 改变列名 :frm.columns = ['a','b','c']
- 增加列 :df.insert(idx, col_name, value)
- 增加列: frm['new_col'] = list
- 删除列: frm.drop(['col'],axis=1)
- 根据条件获取某些列 frm.groupby(col) frm.groupby([col1,col2])
-
series: 如何加减乘除? 如何实现向量点乘?如何去重? 如何转化为dict和list? 如何对所有的元素执行某个函数从而获取新的series? 如何排序?如何求平均值,最大值,最小值.
- 加减乘除:series +-x/ xx
- 向量点乘:pd.dot(series1, series2)
- 去重:series.unique()
- dict,list:
- dict返回的是dict of dict;list返回的是列表的字典;series返回的是序列的字典;records返回的是字典的列表
- series1 = series.to_dict(orient='dict')
- series2 = series.to_dict(orient='list')
- series3 = series.to_dict(orient='series')
- series4 = series.to_dict(orient='records')
to_dict的各种情况
- 'dict' (default) : dict like {column -> {index -> value}}
- 'list' : dict like {column -> [values]}
- 'series' : dict like {column -> Series(values)}
- 'split' : dict like {'index' -> [index], 'columns' -> [columns], 'data' -> [values]}
- 'records' : list like [{column -> value}, ... , {column -> value}]
- 'index' : dict like {index -> {column -> value}}
- 对DataFrame中的每一列应用函数func: series.apply(func)
- 对DataFrame中的每一行应用函数func: series.apply(func,axis=1):
- 排序: series.sort_values()
- 最大值: series.max()
- 最小值: series.min()
- 平均值: series.mean()
- loc: 如何根据行序号来获取某一行? 如何根据行列值获取一个值?
- 根据行序号来获取某一行: frm.iloc[x]
- 如何根据行列值获取一个值:frm.loc[x,y]/frm.loc[i:col]
- frm: 如何从dict,list中创建frm,如何实现两个frame之间的合并? 两个frm之间如何加减乘除?
- 从dict中创建frm: pd.DataFrame.from_dict/pd.DataFrame(dict)
-用dict的list创建frm:pd.DataFrame.from_records(dict_list) - 从dict,list中创建frm: pd.DataFrame(list)
- 实现两个frame之间的合并:pd.merge(frm1.frm2)
- 两个frm之间加减乘除: frm1 +-*/ frm2
- 从dict中创建frm: pd.DataFrame.from_dict/pd.DataFrame(dict)
- values: 是什么数据类型? 如何实现两个values之间的矩阵乘法?
- ndarray
- 矩阵乘法:(values1.T)*values2
- date: 如何获取一段连续的日期?
- pd.date_range('1900/1/30', periods=xx)
- 细节: 把一个整数列的某一个元素赋值为None会发生什么
- 这一个整数列都变成float格式
- 如何分组求和,求平均?(利用groupby);
- 分组求和:frm.groupby([col]).sum() :对col列下的值所在行的其他列的值进行求和
- 分组求平均:frm.groupby([col]).mean()
group_by用法可见此链接pandas groupby用法
- 如何对一列转化为类型?(用astype)
- 转化类型:frm[[col]] = frm[[col]].astype(type)
- 如何将dataframe保存到本地html或者pickle文件?
- frm.to_html()
- frm.to_pickle()
- 如何更改index的col名?
- frm.index.name = "new_name"
- 如何更改column的顺序?
- frm = frm.reindex(columns = [....])