DataFrame基本操作 <二>

首先来一个别致的列表创建,我有印象但是从来没用过,突然发现很好用也很优雅

a=list('qwe13qaew')
print(a)

运行结果

['q', 'w', 'e', '1', '3', 'q', 'a', 'e', 'w']

实际应用也很有效果,生成两个实例用于练习

df3 = pd.DataFrame(np.arange(12).reshape((3, 4)),
                    index=['Qingdao', 'Jinan', 'Yantai'],
                    columns=list('abcd'))
df4 = pd.DataFrame(np.arange(20).reshape((4, 5)),
                    index=['Qingdao', 'Jinan', 'Yantai', 'Linyi'],
                    columns=list('abcde'))   #这种用法很别致啊直接
print(df3)

print(df4)

运行结果

         a  b   c   d
Qingdao  0  1   2   3
Jinan    4  5   6   7
Yantai   8  9  10  11

          a   b   c   d   e
Qingdao   0   1   2   3   4
Jinan     5   6   7   8   9
Yantai   10  11  12  13  14
Linyi    15  16  17  18  19

加法运算

print(df3 + df4 )# 注意行列数不同的两个 DataFrame 相加行列的对齐和值填充。

运行结果

         a  b   c   d
Qingdao  0  1   2   3
Jinan    4  5   6   7
Yantai   8  9  10  11
          a   b   c   d   e
Qingdao   0   1   2   3   4
Jinan     5   6   7   8   9
Yantai   10  11  12  13  14
Linyi    15  16  17  18  19
#########################################
            a     b     c     d   e
Jinan     9.0  11.0  13.0  15.0 NaN
Linyi     NaN   NaN   NaN   NaN NaN
Qingdao   0.0   2.0   4.0   6.0 NaN
Yantai   18.0  20.0  22.0  24.0 NaN

相当牛逼,index跟‘name’相同的直接加,不存在的用缺省值定住。

填充后的加法运算

print(df3.add(df4, fill_value=0)) # 注意无效值用 0 填充后的加法运算

print(df3.add(df4, fill_value=100))

运行结果

            a     b     c     d     e
Jinan     9.0  11.0  13.0  15.0   9.0
Linyi    15.0  16.0  17.0  18.0  19.0
Qingdao   0.0   2.0   4.0   6.0   4.0
Yantai   18.0  20.0  22.0  24.0  14.0
             a      b      c      d      e
Jinan      9.0   11.0   13.0   15.0  109.0
Linyi    115.0  116.0  117.0  118.0  119.0
Qingdao    0.0    2.0    4.0    6.0  104.0
Yantai    18.0   20.0   22.0   24.0  114.0

减法运算

s3 = df3.iloc[0]
print(s3)
print(df3 - s3 ) # 减法缺省是按列对齐去减,并广播至每一行。

运行结果

a    0
b    1
c    2
d    3
Name: Qingdao, dtype: int32
         a  b  c  d
Qingdao  0  0  0  0
Jinan    4  4  4  4
Yantai   8  8  8  8

每一行都减去了0,1,2,3

对比一下

s4=[4,5,6,7]
print(df3 - s4) # 减法缺省是按列对齐去减,并广播至每一行。

运算结果

         a  b  c  d
Qingdao -4 -4 -4 -4
Jinan    0  0  0  0
Yantai   4  4  4  4

求和

猜你喜欢

转载自www.cnblogs.com/PYlog/p/9142759.html