Pandas DataFrame DataFrame.sum()函式
Suraj Joshi
2023年1月30日
-
pandas.DataFrame.sum()
的語法 -
示例程式碼:
DataFrame.sum()
沿列軸計算和值的方法 -
示例程式碼:
DataFrame.sum()
沿行軸查詢總和的方法 -
示例程式碼:
DataFrame.sum()
方法查詢忽略NaN
值的總和 -
示例程式碼:在
DataFrame.sum()
方法中設定min_count
Python Pandas DataFrame.sum()
的功能是計算 DataFrame
物件在指定軸上的值之和。
pandas.DataFrame.sum()
的語法
DataFrame.sum(
axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs
)
引數
axis |
沿著行(axis=0 )或列(axis=1 )求和 |
skipna |
布林型。排除 NaN 值(skipna=True )或包含 NaN 值(skipna=False )。 |
level |
如果軸為 MultiIndex ,則沿特定級別進行計數。 |
numeric_only |
布林型。對於 numeric_only=True ,只包括 float 、int 和 boolean 列。 |
min_count |
整數。計算總和的非 NaN 值的最小數目。如果不滿足這一條件,總和將為 NaN 。 |
**kwargs |
函式的附加關鍵字引數 |
返回值
如果沒有指定 level
,則返回所要求的軸的值之和的 Series
,否則返回總和值的 DataFrame
。
示例程式碼: DataFrame.sum()
沿列軸計算和值的方法
import pandas as pd
df = pd.DataFrame({'X':
[1,2,3,4,5],
'Y': [1, 2, 3,4,5],
'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)
sums=df.sum()
print("Column-wise Sum:")
print(sums)
輸出:
DataFrame:
X Y Z
0 1 1 3
1 2 2 4
2 3 3 5
3 4 4 6
4 5 5 3
Column-wise Sum:
X 15
Y 15
Z 21
dtype: int64
它計算所有列 X
、Y
和 Z
的總和,最後返回一個 Series
物件,其中包括每列的總和。
在 Pandas 中,要找到 DataFrame 中某一列的總和,只需要呼叫該列的 sum()
函式。
import pandas as pd
df = pd.DataFrame({'X':
[1,2,3,4,5],
'Y': [1, 2, 3,4,5],
'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)
sums=df["Z"].sum()
print("Sum of values of Z-column:")
print(sums)
輸出:
DataFrame:
X Y Z
0 1 1 3
1 2 2 4
2 3 3 5
3 4 4 6
4 5 5 3
Sum of values of Z-column:
21
它只給出了 DataFrame Z
列值的總和。
示例程式碼: DataFrame.sum()
沿行軸查詢總和的方法
import pandas as pd
df = pd.DataFrame({'X':
[1,2,3,4,5],
'Y': [1, 2, 3,4,5],
'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)
sums=df.sum(axis=1)
print("Row-wise sum:")
print(sums)
輸出:
DataFrame:
X Y Z
0 1 1 3
1 2 2 4
2 3 3 5
3 4 4 6
4 5 5 3
Row-wise sum:
0 5
1 8
2 11
3 14
4 13
dtype: int64
它計算所有行的總和,最後返回一個包含每行總和的 Series
物件。
在 Pandas 中,如果要找到 DataFrame
中某一行的總和,需要呼叫 sum()
函式來計算這一行的總和。
import pandas as pd
df = pd.DataFrame({'X':
[1,2,3,4,5],
'Y': [1, 2, 3,4,5],
'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)
sum_3=df.iloc[[2]].sum(axis=1)
print("Sum of values of 3rd Row:")
print(sum_3)
輸出:
DataFrame:
X Y Z
0 1 1 3
1 2 2 4
2 3 3 5
3 4 4 6
4 5 5 3
Sum of values of 3rd Row:
2 11
dtype: int64
它只給出了 DataFrame
的第三行的值的總和。
使用 iloc
方法根據索引來選擇行。
示例程式碼:DataFrame.sum()
方法查詢忽略 NaN
值的總和
使用 skipna
引數的預設值,即 skipna=True
沿指定的軸找到 DataFrame
的總和,忽略 NaN
值。
import pandas as pd
df = pd.DataFrame({'X':
[1,None,3,4,5],
'Y': [1, None, 3,None,5],
'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)
sums=df.sum()
print("Column-wise Sum:")
print(sums)
輸出:
DataFrame:
X Y Z
0 1.0 1.0 3
1 NaN NaN 4
2 3.0 3.0 5
3 4.0 NaN 6
4 5.0 5.0 3
Column-wise Sum:
X 13.0
Y 9.0
Z 21.0
dtype: float64
如果你設定 skipna=True
,如果 DataFrame 有 NaN
值,你將得到 NaN
值的和。
import pandas as pd
df = pd.DataFrame({'X':
[1,None,3,4,5],
'Y': [1, None, 3,None,5],
'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)
sums=df.sum(skipna=False)
print("Column-wise Sum:")
print(sums)
輸出:
DataFrame:
X Y Z
0 1.0 1.0 3
1 NaN NaN 4
2 3.0 3.0 5
3 4.0 NaN 6
4 5.0 5.0 3
Column-wise Sum:
X NaN
Y NaN
Z 21.0
dtype: float64
這裡,你會得到列 X
和 Y
之和的 NaN
值,因為它們都有 NaN
值。
示例程式碼:在 DataFrame.sum()
方法中設定 min_count
import pandas as pd
df = pd.DataFrame({'X':
[1,None,3,4,5],
'Y': [1, None, 3,None,5],
'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)
sums=df.sum(min_count=4)
print("Column-wise Sum:")
print(sums)
輸出:
DataFrame:
X Y Z
0 1.0 1.0 3
1 NaN NaN 4
2 3.0 3.0 5
3 4.0 NaN 6
4 5.0 5.0 3
Column-wise Sum:
X 13.0
Y NaN
Z 21.0
dtype: float64
在這裡,你可以得到 Y
列之和的 NaN
值,因為 Y
列只有 3 個非 NaN
值,小於 min_count
引數的值。
作者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn