日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python實戰基礎之Pandas統計某個數據列的空值個數_python

作者:菜鳥實戰 ? 更新時間: 2022-10-26 編程語言

一、實戰場景

實戰場景:Pandas 如何統計某個數據列的空值個數

二、主要知識點

  • 文件讀寫
  • 基礎語法
  • Pandas
  • numpy

三、菜鳥實戰

馬上安排!

1、創建 python 文件

"""
對如下DF,設置兩個單元格的值
·使用iloc 設置(3,B)的值是nan
·使用loc設置(8,D)的值是nan
"""
import numpy as np
import pandas as pd
 
np.random.seed(66)
df = pd.DataFrame(np.random.rand(10, 4), columns=list('ABCD'))
df.iloc[3, 1] = np.nan
df.loc[8, 'D'] = np.nan
print(df)
 
 
print(df.isnull().sum())

2、運行結果

? ? ? ? ? A? ? ? ? ?B? ? ? ? ?C? ? ? ? ?D
0? 0.154288? 0.133700? 0.362685? 0.679109
1? 0.194450? 0.251210? 0.758416? 0.557619
2? 0.514803? 0.467800? 0.087176? 0.829095
3? 0.298641? ? ? ?NaN? 0.678006? 0.903489
4? 0.514451? 0.539105? 0.664328? 0.634057
5? 0.353419? 0.026643? 0.165290? 0.879319
6? 0.067820? 0.369086? 0.115501? 0.096294
7? 0.083770? 0.086927? 0.022256? 0.771043
8? 0.049213? 0.465223? 0.941233? ? ? ?NaN
9? 0.361318? 0.031319? 0.304045? 0.188268
A? ? 0
B? ? 1
C? ? 0
D? ? 1
dtype: int64

?補充:Pandas檢查是否有空值、處理空值

1.創建有空值的DataFrame

import numpy as np
import pandas as pd

dates = pd.date_range("20200307", periods=4)
df1 = pd.DataFrame(np.arange(12).reshape(4, 3), index=dates, columns=["A", "B", "C"])
df2 = pd.DataFrame(df1, index=dates, columns=["A", "B", "C", "D"]) ?# 新增D列,卻不賦值,NaN表示空值
print(df2)
# 打印輸出:
# ? ? ? ? ? ? A ? B ? C ? D
# 2020-03-07 ?0 ? 1 ? 2 NaN
# 2020-03-08 ?3 ? 4 ? 5 NaN
# 2020-03-09 ?6 ? 7 ? 8 NaN
# 2020-03-10 ?9 ?10 ?11 NaN

2.檢查是否有空值

print(df2.isnull())  # 是空值返回True,否則返回False
print(np.any(df2.isnull()))  # 只要有一個空值便會返回True,否則返回False
print(np.all(df2.isnull()))  # 全部值都是空值便會返回True,否則返回False
# 輸出結果:
#                 A      B      C     D
# 2020-03-07  False  False  False  True
# 2020-03-08  False  False  False  True
# 2020-03-09  False  False  False  True
# 2020-03-10  False  False  False  True
# True
# False

3.給NaN賦值

df2.iloc[0, 3] = 10 ?# 直接給某個位置賦值
print(df2)
# 打印輸出:
# ? ? ? ? ? ?A ? B ? C ? ? D
# 2020-03-07 ?0 ? 1 ? 2 ?10.0
# 2020-03-08 ?3 ? 4 ? 5 ? NaN
# 2020-03-09 ?6 ? 7 ? 8 ? NaN
# 2020-03-10 ?9 ?10 ?11 ? NaN

series = pd.Series([11, 12, 13], index=dates[1:4])
df2["D"] = series ?# 同時給D列賦多個值
print(df2)
# 打印輸出:
# ? ? ? ? ? ? A ? B ? C ? ? D
# 2020-03-07 ?0 ? 1 ? 2 ? NaN
# 2020-03-08 ?3 ? 4 ? 5 ?11.0
# 2020-03-09 ?6 ? 7 ? 8 ?12.0
# 2020-03-10 ?9 ?10 ?11 ?13.0

4.去除有空值的行或列

df2.loc["2020-03-10", ["A", "B", "C"]] = [11, 12, 15]
df2.fillna("null") ?# 把空值填充成null

# dropna(axis,how,subset)方法會刪除有空值的行或列,
# axis為0是行,axis為1是列,
# how為any時該行或列只要有一個空值就會刪除,all是全都是空值才刪除
# subset是一個列表,指定某些列
df2.dropna(axis=0, how="any", subset=["A", "D"])

總結

原文鏈接:https://blog.csdn.net/qq_39816613/article/details/126151503

相關推薦

欄目分類
最近更新