網(wǎng)站首頁 編程語言 正文
前言
Python實際針對數(shù)據(jù)分析的學習是庫,用庫來解決一系列的數(shù)據(jù)分析問題
去掉信息不全的用戶
描述
現(xiàn)有一個Nowcoder.csv文件,它記錄了牛客網(wǎng)的部分用戶數(shù)據(jù),包含如下字段(字段與字段之間以逗號間隔):
- Nowcoder_ID:用戶ID
- Level:等級
- Achievement_value:成就值
- Num_of_exercise:刷題量
- Graduate_year:畢業(yè)年份
- Language:常用語言
- Continuous_check_in_days:最近連續(xù)簽到天數(shù)
- Number_of_submissions:提交代碼次數(shù)
- Last_submission_time:最后一次提交題目日期
運營同學正在做用戶調研,為了保證調研的可靠性,想要去掉那些信息不全的用戶,即去掉有缺失數(shù)據(jù)的行,請你幫助他去掉后輸出全部數(shù)據(jù)。
輸入描述
數(shù)據(jù)集直接從當前目錄下的Nowcoder.csv文件中讀取。
輸出描述:
直接輸出清洗后的全部數(shù)據(jù)。
答案
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',', dtype=object)
pd.set_option('display.width', 300) # 設置字符顯示寬度
pd.set_option('display.max_rows', None) # 設置顯示最大行
pd.set_option('display.max_columns', None)
print(Nowcoder[Nowcoder.isna() == False])
修補缺失的用戶數(shù)據(jù)
描述
現(xiàn)有一個Nowcoder.csv文件,它記錄了牛客網(wǎng)的部分用戶數(shù)據(jù),包含如下字段(字段與字段之間以逗號間隔):
- Nowcoder_ID:用戶ID
- Level:等級
- Achievement_value:成就值
- Num_of_exercise:刷題量
- Graduate_year:畢業(yè)年份
- Language:常用語言
- Continuous_check_in_days:最近連續(xù)簽到天數(shù)
- Number_of_submissions:提交代碼次數(shù)
- Last_submission_time:最后一次提交題目日期
運營同學拿到了這份用戶文件,但是由于系統(tǒng)BUG,出現(xiàn)了部分缺失的值,請你使用當前的最大年份填充缺失的畢業(yè)年份(“Graduate_year”),用Python填充缺失的常用語言(“Language”),用成就值的均值(四舍五入保留整數(shù))填充缺失的成就值(“Achievement_value”)。
輸入描述
數(shù)據(jù)集直接從當前目錄下的Nowcoder.csv文件中讀取。
輸出描述:
輸出修改后的全部數(shù)據(jù),不用處理輸出時年份與成就值的小數(shù)點問題。
答案
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
pd.set_option('display.width', 300) # 設置字符顯示寬度
pd.set_option('display.max_rows', None) # 設置顯示最大行
pd.set_option('display.max_columns', None)
Nowcoder["Graduate_year"].fillna(Nowcoder["Graduate_year"].max())
Nowcoder["Language"].fillna("Python")
Nowcoder["Achievement_value"].fillna(Nowcoder["Achievement_value"].mean().round(0))
print(Nowcoder)
解決牛客網(wǎng)用戶重復的數(shù)據(jù)
描述
現(xiàn)有一個Nowcoder.csv文件,它記錄了牛客網(wǎng)的部分用戶數(shù)據(jù),包含如下字段(字段與字段之間以逗號間隔):
- Nowcoder_ID:用戶ID
- Level:等級
- Achievement_value:成就值
- Num_of_exercise:刷題量
- Graduate_year:畢業(yè)年份
- Language:常用語言
- Continuous_check_in_days:最近連續(xù)簽到天數(shù)
- Number_of_submissions:提交代碼次數(shù)
- Last_submission_time:最后一次提交題目日期
牛牛拿到這份文件的時候一臉懵逼,因為系統(tǒng)錯誤將很多相同用戶的數(shù)據(jù)輸出了多條,導致文件中有很多重復的行,請先檢查每一行是否重復,然后輸出刪除重復行后的全部數(shù)據(jù)。
輸入描述
數(shù)據(jù)集直接從當前目錄下的Nowcoder.csv文件中讀取。
輸出描述
先輸出每一行是否重復,再輸出去重后的文件全部數(shù)據(jù)
答案
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',', dtype=object)
pd.set_option('display.width', 1000)
pd.set_option('display.max_rows', None)
print(Nowcoder.duplicated())
print(Nowcoder.drop_duplicates(0))
統(tǒng)一最后刷題日期的格式
描述
現(xiàn)有一個Nowcoder.csv文件,它記錄了牛客網(wǎng)的部分用戶數(shù)據(jù),包含如下字段(字段與字段之間以逗號間隔):
- Nowcoder_ID:用戶ID
- Level:等級
- Achievement_value:成就值
- Num_of_exercise:刷題量
- Graduate_year:畢業(yè)年份
- Language:常用語言
- Continuous_check_in_days:最近連續(xù)簽到天數(shù)
- Number_of_submissions:提交代碼次數(shù)
- Last_submission_time:最后一次提交題目日期
運營同學發(fā)現(xiàn)最后一次提交題目日期這一列有各種各樣的日期格式,這對于他分析用戶十分不友好,你能夠幫他輸出用戶ID、等級以及統(tǒng)一后的日期嗎?(日期格式統(tǒng)一為yyyy-mm-dd)
輸入描述
數(shù)據(jù)集直接從當前目錄下的Nowcoder.csv文件中讀取。
輸出描述
輸出用戶ID、等級與最后提交日期三列,包括行號。
答案
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
Nowcoder['Last_submission_time'] = pd.to_datetime(Nowcoder["Last_submission_time"],format="%Y-%m-%d")
print(Nowcoder[['Nowcoder_ID','Level','Last_submission_time']])
將用戶的json文件轉換為表格形式
描述
現(xiàn)有一個Nowcoder.json文件,它記錄了牛客網(wǎng)的部分用戶數(shù)據(jù),包含如下字段(字段與字段之間以逗號間隔):
- Nowcoder_ID:用戶ID
- Level:等級
- Achievement_value:成就值
- Graduate_year:畢業(yè)年份
- Language:常用語言
如果你讀入了這個json文件,能將其轉換為pandas的DataFrame格式嗎?
輸入描述:
數(shù)據(jù)集直接從當前目錄下的Nowcoder.json文件中讀取。
輸出描述:
輸出轉換為DataFrame的全部數(shù)據(jù),包括行號。
答案
import pandas as pd
import json
pd.set_option('display.width', 300) # 設置字符顯示寬度
pd.set_option('display.max_rows', None) # 設置顯示最大行
pd.set_option('display.max_columns', None)
with open('Nowcoder.json', 'r') as f:
data = json.loads(f.read())
df = pd.DataFrame.from_dict(data)
print(df)
原文鏈接:https://blog.csdn.net/weixin_41645135/article/details/126239735
相關推薦
- 2022-09-04 Python?numpy和matlab的幾點差異介紹_python
- 2023-07-07 什么是 AOP?對于 Spring IoC 和 AOP 的理解?
- 2021-12-12 C/C++?Qt?數(shù)據(jù)庫QSql增刪改查組件應用教程_C 語言
- 2022-02-25 Servlet配置啟動級別loadOnStartup注意事項
- 2024-01-27 解決“該項目不在請確認該項目位置,然后重試” 文件無法刪除問題
- 2022-03-03 關于使用iview table 組件中使用 tooltip 樣式覆蓋的問題
- 2022-04-19 Go語言標準輸入輸出庫的基本使用教程_Golang
- 2022-11-10 C++實現(xiàn)拷貝構造函數(shù)的方法詳解_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支