DataFrame 删除与增减行列

    1.0 对于行和列都有索引的DataFrame

df=DataFrame(np.arange(16).reshape((4,4)),index=['a','b','c','d'],columns=['one','two','three','four'])  
df
Out[10]: 
   one  two  three  four
a    0    1      2     3
b    4    5      6     7
c    8    9     10    11
d   12   13     14    15

    删除某行

df.drop('a') #默认 axis=0
Out[18]: 
   one  two  three  four
b    4    5      6     7
c    8    9     10    11
d   12   13     14    15
df.drop('a',axis=0)
Out[10]: 
   one  two  three  four
b    4    5      6     7
c    8    9     10    11
d   12   13     14    15

    删除某列

df.drop('one',axis=1) #axis=1 必须有
Out[8]: 
   two  three  four
a    1      2     3
b    5      6     7
c    9     10    11
d   13     14    15

    增加某列

df['new']=list(range(df.shape[0]))#所增加的某列的维度必须与原DataFrame 相一致
df
Out[19]: 
    0   1   2   3  new
0   0   1   2   3    0
1   4   5   6   7    1
2   8   9  10  11    2
3  12  13  14  15    3
df['new']='12'#向 DataFrame 添加一列,该列为同一值

df
Out[25]: 
    0   1   2   3 new  row
0   0   1   2   3  12    1
1   4   5   6   7  12    2
2   8   9  10  11  12    3
3  12  13  14  15  12    4

    计算各列数据总和并作为新列添加到末尾

df=DataFrame(np.arange(16).reshape((4,4)),index=['a','b','c','d'],columns=['one','two','three','four'])

df['Col_sum'] = df.apply(lambda x: x.sum(), axis=1)

df
Out[36]: 
   one  two  three  four  Col_sum
a    0    1      2     3        6
b    4    5      6     7       22
c    8    9     10    11       38
d   12   13     14    15       54

    计算各行数据总和并作为新行添加到末尾

df.loc['Row_sum'] = df.apply(lambda x: x.sum())

df
Out[39]: 
         one  two  three  four
a          0    1      2     3
b          4    5      6     7
c          8    9     10    11
d         12   13     14    15
Row_sum   24   28     32    36

    对于行和列都没有索引的DataFrame

df=DataFrame(np.arange(16).reshape((4,4)))

    删除某行

df.drop([0])
Out[14]: 
    0   1   2   3
1   4   5   6   7
2   8   9  10  11
3  12  13  14  15

df.drop([0],axis=0)
Out[15]: 
    0   1   2   3
1   4   5   6   7
2   8   9  10  11
3  12  13  14  15

    删除某列

df.drop([0],axis=1)
Out[16]: 
    1   2   3
0   1   2   3
1   5   6   7
2   9  10  11
3  13  14  15
posted @ 2022-08-19 22:59  luoganttcc  阅读(44)  评论(0编辑  收藏  举报