易错:
DataFrame:
| 取出某列 | df['列名'],df.列名 | |
| 取出0-3行 | df[0:4] | 易错:与matlab不同,matlab数组从下标1开始,右闭区间,这里与python的字符串相同,下标是从0开始计算的,右开区间 |
| 取出某行eg:0行 |
df.ix[0] |
error:df[0] |
| 取出不连续的几行 |
__main__:1: DeprecationWarning:
df.iloc[[0,3]][0:3]
analysis:[[0,3]]: [0:3]表示列表,0:3也会生成列表 |
why:为什么废弃系:df.iloc[0:3][0:3]:右闭区间--》统一 df.iloc[0:2][0:3] df.ix[0:2][0:3] |
| 转置 | df.T---note:原数组不变,生成一个 新的数组 | |
| 填充 |
df.reindex(index=[3,2,1,0],method='ffill').reindex(columns=['name','mark','new']) 错误理解了--实际上没影响,真实原因是由于自己多加了空格符号,note:填充的索引增长方向和传入的函数方法变量要一致:bfill 和ffill |
df.reindex(index=[3,2,1,0],method='bfill').reindex(columns=['name',''mark','new']) File "<ipython-input-42-71e5f010602e>", line 1 df.reindex(index=[3,2,1,0],method='bfill').reindex(columns=['name',''mark','new']) ^ SyntaxError: invalid syntax---方向不一致 |
| 删除某列 |
del df.new ==》不能实现删除 --》analysis:del 是语句 df del df['new'] ==》能实现
方法二:drop(),如果inplace=True则原有数据块的相应行被删除,如果不设置参数inplace=True,则只能在生成的新数据块中实现删除效果,而不能删除原有数据块的相应行。
方法三:pop(),弹出,原dataframe 不再保留相应列或行 |
|
| 重复:操作顺序: 判断重复--》删除重复或显示重复(不重复的) | todo-》 |
| 连接: | pd.merge(df1,df2 [,on='xx']) | :类似于sql的内连接,默认用索引进行类连接 |
| df1.combine_first(df2) | ||
| 堆叠:多列转为一行 | df.stack(0 |
f1.stack().ndim f1.stack().shape |
| 透视表:(透析表,pivot: |
||
|
单列分组+链式统计-->统计的是什么列eg:df['price'] .用什么进行分组统计groupby(df['color']) .进行什么类别(求和,平均值)的统计 |
todo | |
| 多列分组:note:grouypby中列表的形式:groupby([df['color'],df['shape']])+链式统计 | todo | |
linspace
abbr. 线性等分向量(linear space) |
X=np.linspace(-np.pi,np.pi,256,enpoint=True) 或X=np.linspace(-np.pi,np.pi,256) Y=np.linspace(-np.pi,np.pi,256,enpoint=False) |
|