【数据分析可视化】DataFrame的简单数学计算

2020-07-07 19:58:18 浏览数 (1)

代码语言:javascript复制
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
代码语言:javascript复制
s1 = Series([1,2,3],index=['A','B','C'])
s1
代码语言:javascript复制
A    1
B    2
C    3
dtype: int64
代码语言:javascript复制
s2 = Series([4,5,6,7],index=['B','C','D','E'])
s2
代码语言:javascript复制
B    4
C    5
D    6
E    7
dtype: int64
代码语言:javascript复制
# Series相加(对应index的value相加)
# nan和任何数相加都为nan
s1   s2
代码语言:javascript复制
A    NaN
B    6.0
C    8.0
D    NaN
E    NaN
dtype: float64

DataFrame运算

代码语言:javascript复制
df1 = DataFrame(np.arange(4).reshape(2,2), index=['A','B'], columns=['BJ','SH'])
df1

BJ

SH

A

0

1

B

2

3

代码语言:javascript复制
df2 = DataFrame(np.arange(9).reshape(3,3), index=['A','B','C'], columns=['BJ','GZ','SH'])
df2

BJ

GZ

SH

A

0

1

2

B

3

4

5

C

6

7

8

代码语言:javascript复制
# 加法,对应索引的值相加(nan加什么都是nan)
df1   df2

BJ

GZ

SH

A

0.0

NaN

3.0

B

5.0

NaN

8.0

C

NaN

NaN

NaN

代码语言:javascript复制
df3 = DataFrame([[1,2,3],[4,5,np.nan],[7,8,9]], index=['A','B','C'], columns=['c1','c2','c3'])
df3

c1

c2

c3

A

1

2

3.0

B

4

5

NaN

C

7

8

9.0

代码语言:javascript复制
# 求和 默认列(此时求和会忽略nan)
df3.sum()
代码语言:javascript复制
c1    12.0
c2    15.0
c3    12.0
dtype: float64
代码语言:javascript复制
type(df3.sum())
代码语言:javascript复制
pandas.core.series.Series
代码语言:javascript复制
# 求和 行
df3.sum(axis=1)
代码语言:javascript复制
A     6.0
B     9.0
C    24.0
dtype: float64
代码语言:javascript复制
# 最小值 默认列
df3.min()
代码语言:javascript复制
c1    1.0
c2    2.0
c3    3.0
dtype: float64
代码语言:javascript复制
# 最小值 行
df3.min(axis=1)
代码语言:javascript复制
A    1.0
B    4.0
C    7.0
dtype: float64
代码语言:javascript复制
# 返回统计数据 平均值mean
df3.describe()

c1

c2

c3

count

3.0

3.0

2.000000

mean

4.0

5.0

6.000000

std

3.0

3.0

4.242641

min

1.0

2.0

3.000000

25%

2.5

3.5

4.500000

50%

4.0

5.0

6.000000

75%

5.5

6.5

7.500000

max

7.0

8.0

9.000000

代码语言:javascript复制
df3

c1

c2

c3

A

1

2

3.0

B

4

5

NaN

C

7

8

9.0

0 人点赞