一、获取行数、列数
>>> df = pd.DataFrame(np.arange(12).reshape(3, 4), index = ['row1', 'row2', 'row3'], columns=['col1', 'col2', 'col3', 'col4'])
>>>
>>> df
col1 col2 col3 col4
row1 0 1 2 3
row2 4 5 6 7
row3 8 9 10 11
>>>
# 获取行数
>>> df.shape[0]
3
>>> len(df)
3
>>> df.iloc[:,0].size
3
# 获取列数
>>> df.shape[1]
4
>>> df.columns.size
4
二、获取索引、元素值
>>> df = pd.DataFrame(np.arange(12).reshape(3, 4), index = ['row1', 'row2', 'row3'], columns=['col1', 'col2', 'col3', 'col4'])
>>>
>>> df
col1 col2 col3 col4
row1 0 1 2 3
row2 4 5 6 7
row3 8 9 10 11
# 获取索引
>>> df.ix[[0]].index.values[0]
'row1'
# 获取元素,0行0列
>>> df.ix[[0]].values[0][0]
0
# 获取元素,0行1列
>>> df.ix[[0]].values[0][1]
1
三、增加行、列
>>> df = pd.DataFrame(np.arange(12).reshape(3, 4), index = ['row1', 'row2', 'row3'], columns=['col1', 'col2', 'col3', 'col4'])
>>>
>>> df
col1 col2 col3 col4
row1 0 1 2 3
row2 4 5 6 7
row3 8 9 10 11
# 增加行
>>> df.loc['row4']=[12,13,14,15]
>>>
>>> df
col1 col2 col3 col4
row1 0 1 2 3
row2 4 5 6 7
row3 8 9 10 11
row4 12 13 14 15
# 增加列
>>> df['col5']=[11,22,33,44]
>>>
>>> df
col1 col2 col3 col4 col5
row1 0 1 2 3 11
row2 4 5 6 7 22
row3 8 9 10 11 33
row4 12 13 14 15 44
四、删除行、列
>>> df = pd.DataFrame(np.arange(12).reshape(3, 4), index = ['row1', 'row2', 'row3'], columns=['col1', 'col2', 'col3', 'col4'])
>>>
>>> df
col1 col2 col3 col4
row1 0 1 2 3
row2 4 5 6 7
row3 8 9 10 11
# 删除行
>>> df.drop(['row1'], axis=0)
col1 col2 col3 col4
row2 4 5 6 7
row3 8 9 10 11
# 删除列
>>> df.drop(['col4'], axis=1)
col1 col2 col3
row1 0 1 2
row2 4 5 6
row3 8 9 10
按条件删除行、列的方法:
# 删除dataframe的id大于100且小于200的所有行
df = df.drop(df[(df.id > 100) & (df.id < 200)].index)
# 删除dataframe的name列
df = df.drop('name', axis=1)
五、插入行、列
>>> df = pd.DataFrame(np.arange(12).reshape(3, 4), index = ['row1', 'row2', 'row3'], columns=['col1', 'col2', 'col3', 'col4'])
>>>
>>> df
col1 col2 col3 col4
row1 0 1 2 3
row2 4 5 6 7
row3 8 9 10 11
# 插入列
>>> df.insert(2,'col_insert',[11,22,33])
>>>
>>> df
col1 col2 col_insert col3 col4
row1 0 1 11 2 3
row2 4 5 22 6 7
row3 8 9 33 10 11
>>> df = pd.DataFrame(np.arange(12).reshape(3, 4), index = ['row1', 'row2', 'row3'], columns=['col1', 'col2', 'col3', 'col4'])
>>>
>>> df
col1 col2 col3 col4
row1 0 1 2 3
row2 4 5 6 7
row3 8 9 10 11
# 先插入行在最后
>>> df.loc['row12']=[11,22,33,44]
>>>
>>> df
col1 col2 col3 col4
row1 0 1 2 3
row2 4 5 6 7
row3 8 9 10 11
row12 11 22 33 44
# 然后插入行序号
>>> df['rowindex']=[1,3,4,2]
>>>
>>> df
col1 col2 col3 col4 rowindex
row1 0 1 2 3 1
row2 4 5 6 7 3
row3 8 9 10 11 4
row12 11 22 33 44 2
# 再按行号排序,得到结果
>>> df=df.sort_values(by='rowindex')
>>>
>>> df
col1 col2 col3 col4 rowindex
row1 0 1 2 3 1
row12 11 22 33 44 2
row2 4 5 6 7 3
row3 8 9 10 11 4
六、append方法添加行
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)
引用
【1】https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html
【2】https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.insert.html
【3】https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html