当前位置:   article > 正文

Pandas入门2:CSV文件读写以及数据清洗常用函数介绍_如何对csv进行数据清洗

如何对csv进行数据清洗

目录

1.读取CSV文件

(1)读取数据的前3行

(2)读取数据的后3行

(3)将数据存储为CSV文件

2.数据清洗常用函数

(1)Pandas清洗空值

1.使用通过 isnull() 判断各个单元格是否为空。

2.删除为空值的一行数据:dropna()

3.替换空字段

(2)计算均值,中位数,众数


1.读取CSV文件

CSV(Comma-Separated Values,逗号分隔值)文件存储的数据以逗号进行分割。

  1. import pandas as pd
  2. df = pd.read_csv('nba.csv') #存放的文件地址
  3. print(df)

(1)读取数据的前3行

  1. import pandas as pd
  2. df = pd.read_csv('nba.csv')
  3. print(df.head(3))

(2)读取数据的后3行

  1. import pandas as pd
  2. df = pd.read_csv('nba.csv')
  3. print(df.tail(3))

(3)将数据存储为CSV文件

  1. import pandas as pd
  2. nme = ["Google", "Runoob", "Taobao", "Wiki"]
  3. st = ["glad", "book, "grocery", "search"]
  4. ag = [90, 40, 80, 98]
  5. # 字典
  6. dict = {'name': nme, 'site': st, 'age': ag}
  7. df = pd.DataFrame(dict)
  8. # 保存 dataframe
  9. df.to_csv('site.csv')

2.数据清洗常用函数

(1)Pandas清洗空值

1.使用通过 isnull() 判断各个单元格是否为空。

  1. import pandas as pd
  2. #文件地址前面放r的原因是阻止转义
  3. df = pd.read_csv(r'C:\Users\22403\Desktop\property-data.csv')
  4. print (df['ID'])
  5. print (df['ID'].isnull())

输出结果如下:

 

 可以看出pd.read_csv读取的文件会把什么都没有的单元格忽略,而写有NA或者N/A的数据读取为空值(NaN也可以,而NAN会被认为是有数据的),通过isnull()判断后会将空值显示为True

 如果想使某几个数据也被认定为空值,可以参考如下方法:

  1. import pandas as pd
  2. missing_values = ["1","2"]
  3. df = pd.read_csv(r'C:\Users\22403\Desktop\property-data.csv', na_values = missing_values)
  4. print (df['ID'])
  5. print (df['ID'].isnull())

 输出结果如下:1和2也为空值了

  1. 0 NaN
  2. 1 NaN
  3. 2 3
  4. 3 4
  5. 4 5
  6. 5 6
  7. 6 NaN
  8. 7 NAN
  9. 8 0
  10. 9 NaN
  11. 10 NaN
  12. Name: ID, dtype: object
  13. 0 True
  14. 1 True
  15. 2 False
  16. 3 False
  17. 4 False
  18. 5 False
  19. 6 True
  20. 7 False
  21. 8 False
  22. 9 True
  23. 10 True
  24. Name: ID, dtype: bool

2.删除为空值的一行数据:dropna()

删除包含空数据的行,dropna()会找每一列,只要有空值,就会把这一行都删掉

  1. import pandas as pd
  2. df = pd.read_csv(r'C:\Users\22403\Desktop\property-data.csv')
  3. new_df = df.dropna()
  4. print(new_df)

输出结果如下:

                           

 可以看到含有NA,N/A,NaN的一行全部都没有了

也可以移除指定列有空值的行:(这样就只会在这一行中找空值,找到就删掉这一行,其他行不会找了)

  1. import pandas as pd
  2. df = pd.read_csv(r'C:\Users\22403\Desktop\property-data.csv')
  3. new_df = df.dropna(subset=['ID'])
  4. print(new_df)

3.替换空字段

  1. import pandas as pd
  2. df = pd.read_csv(r'C:\Users\22403\Desktop\property-data.csv')
  3. df.fillna(12345)
  4. print(df) #没有替换
  5. df.fillna(12345,inplace = True) #替换源数据,把表格中所有空值都替换为12345
  6. print(df)

 输出结果如下图:

  1. ID NAME
  2. 0 1 1
  3. 1 2 2
  4. 2 3 3
  5. 3 4 4
  6. 4 NaN 5
  7. 5 5 5
  8. 6 6 5
  9. 7 NaN 5
  10. 8 NAN 5
  11. 9 0 5
  12. 10 NaN 5
  13. 11 NaN 5
  14. ID NAME
  15. 0 1 1
  16. 1 2 2
  17. 2 3 3
  18. 3 4 4
  19. 4 12345 5
  20. 5 5 5
  21. 6 6 5
  22. 7 12345 5
  23. 8 NAN 5
  24. 9 0 5
  25. 10 12345 5
  26. 11 12345 5

(2)计算均值,中位数,众数

Pandas使用 mean()、median() 和 mode() 方法计算列的均值(所有值加起来的平均值)、中位数值(排序后排在中间的数)和众数(出现频率最高的数)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/278045
推荐阅读
相关标签
  

闽ICP备14008679号