網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
前言
Python實(shí)際針對(duì)數(shù)據(jù)分析的學(xué)習(xí)是庫(kù),用庫(kù)來(lái)解決一系列的數(shù)據(jù)分析問(wèn)題
去掉信息不全的用戶
描述
現(xiàn)有一個(gè)Nowcoder.csv文件,它記錄了??途W(wǎng)的部分用戶數(shù)據(jù),包含如下字段(字段與字段之間以逗號(hào)間隔):
- Nowcoder_ID:用戶ID
- Level:等級(jí)
- Achievement_value:成就值
- Num_of_exercise:刷題量
- Graduate_year:畢業(yè)年份
- Language:常用語(yǔ)言
- Continuous_check_in_days:最近連續(xù)簽到天數(shù)
- Number_of_submissions:提交代碼次數(shù)
- Last_submission_time:最后一次提交題目日期
運(yùn)營(yíng)同學(xué)正在做用戶調(diào)研,為了保證調(diào)研的可靠性,想要去掉那些信息不全的用戶,即去掉有缺失數(shù)據(jù)的行,請(qǐng)你幫助他去掉后輸出全部數(shù)據(jù)。
輸入描述
數(shù)據(jù)集直接從當(dāng)前目錄下的Nowcoder.csv文件中讀取。
輸出描述:
直接輸出清洗后的全部數(shù)據(jù)。
答案
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',', dtype=object)
pd.set_option('display.width', 300) # 設(shè)置字符顯示寬度
pd.set_option('display.max_rows', None) # 設(shè)置顯示最大行
pd.set_option('display.max_columns', None)
print(Nowcoder[Nowcoder.isna() == False])
修補(bǔ)缺失的用戶數(shù)據(jù)
描述
現(xiàn)有一個(gè)Nowcoder.csv文件,它記錄了??途W(wǎng)的部分用戶數(shù)據(jù),包含如下字段(字段與字段之間以逗號(hào)間隔):
- Nowcoder_ID:用戶ID
- Level:等級(jí)
- Achievement_value:成就值
- Num_of_exercise:刷題量
- Graduate_year:畢業(yè)年份
- Language:常用語(yǔ)言
- Continuous_check_in_days:最近連續(xù)簽到天數(shù)
- Number_of_submissions:提交代碼次數(shù)
- Last_submission_time:最后一次提交題目日期
運(yùn)營(yíng)同學(xué)拿到了這份用戶文件,但是由于系統(tǒng)BUG,出現(xiàn)了部分缺失的值,請(qǐng)你使用當(dāng)前的最大年份填充缺失的畢業(yè)年份(“Graduate_year”),用Python填充缺失的常用語(yǔ)言(“Language”),用成就值的均值(四舍五入保留整數(shù))填充缺失的成就值(“Achievement_value”)。
輸入描述
數(shù)據(jù)集直接從當(dāng)前目錄下的Nowcoder.csv文件中讀取。
輸出描述:
輸出修改后的全部數(shù)據(jù),不用處理輸出時(shí)年份與成就值的小數(shù)點(diǎn)問(wèn)題。
答案
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
pd.set_option('display.width', 300) # 設(shè)置字符顯示寬度
pd.set_option('display.max_rows', None) # 設(shè)置顯示最大行
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(wǎng)用戶重復(fù)的數(shù)據(jù)
描述
現(xiàn)有一個(gè)Nowcoder.csv文件,它記錄了牛客網(wǎng)的部分用戶數(shù)據(jù),包含如下字段(字段與字段之間以逗號(hào)間隔):
- Nowcoder_ID:用戶ID
- Level:等級(jí)
- Achievement_value:成就值
- Num_of_exercise:刷題量
- Graduate_year:畢業(yè)年份
- Language:常用語(yǔ)言
- Continuous_check_in_days:最近連續(xù)簽到天數(shù)
- Number_of_submissions:提交代碼次數(shù)
- Last_submission_time:最后一次提交題目日期
牛牛拿到這份文件的時(shí)候一臉懵逼,因?yàn)橄到y(tǒng)錯(cuò)誤將很多相同用戶的數(shù)據(jù)輸出了多條,導(dǎo)致文件中有很多重復(fù)的行,請(qǐng)先檢查每一行是否重復(fù),然后輸出刪除重復(fù)行后的全部數(shù)據(jù)。
輸入描述
數(shù)據(jù)集直接從當(dāng)前目錄下的Nowcoder.csv文件中讀取。
輸出描述
先輸出每一行是否重復(fù),再輸出去重后的文件全部數(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)有一個(gè)Nowcoder.csv文件,它記錄了牛客網(wǎng)的部分用戶數(shù)據(jù),包含如下字段(字段與字段之間以逗號(hào)間隔):
- Nowcoder_ID:用戶ID
- Level:等級(jí)
- Achievement_value:成就值
- Num_of_exercise:刷題量
- Graduate_year:畢業(yè)年份
- Language:常用語(yǔ)言
- Continuous_check_in_days:最近連續(xù)簽到天數(shù)
- Number_of_submissions:提交代碼次數(shù)
- Last_submission_time:最后一次提交題目日期
運(yùn)營(yíng)同學(xué)發(fā)現(xiàn)最后一次提交題目日期這一列有各種各樣的日期格式,這對(duì)于他分析用戶十分不友好,你能夠幫他輸出用戶ID、等級(jí)以及統(tǒng)一后的日期嗎?(日期格式統(tǒng)一為yyyy-mm-dd)
輸入描述
數(shù)據(jù)集直接從當(dāng)前目錄下的Nowcoder.csv文件中讀取。
輸出描述
輸出用戶ID、等級(jí)與最后提交日期三列,包括行號(hào)。
答案
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文件轉(zhuǎn)換為表格形式
描述
現(xiàn)有一個(gè)Nowcoder.json文件,它記錄了??途W(wǎng)的部分用戶數(shù)據(jù),包含如下字段(字段與字段之間以逗號(hào)間隔):
- Nowcoder_ID:用戶ID
- Level:等級(jí)
- Achievement_value:成就值
- Graduate_year:畢業(yè)年份
- Language:常用語(yǔ)言
如果你讀入了這個(gè)json文件,能將其轉(zhuǎn)換為pandas的DataFrame格式嗎?
輸入描述:
數(shù)據(jù)集直接從當(dāng)前目錄下的Nowcoder.json文件中讀取。
輸出描述:
輸出轉(zhuǎn)換為DataFrame的全部數(shù)據(jù),包括行號(hào)。
答案
import pandas as pd
import json
pd.set_option('display.width', 300) # 設(shè)置字符顯示寬度
pd.set_option('display.max_rows', None) # 設(shè)置顯示最大行
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
相關(guān)推薦
- 2022-11-20 .Net中Task?Parallel?Library的基本用法_基礎(chǔ)應(yīng)用
- 2022-08-27 Python?Pandas聚合函數(shù)的應(yīng)用示例_python
- 2023-05-21 一文詳解無(wú)痕埋點(diǎn)在Android中的實(shí)現(xiàn)_Android
- 2023-04-07 React替換傳統(tǒng)拷貝方法的Immutable使用_React
- 2022-06-12 C語(yǔ)言?詳細(xì)解析時(shí)間復(fù)雜度與空間復(fù)雜度_C 語(yǔ)言
- 2022-10-10 GO必知必會(huì)的常見(jiàn)面試題匯總_Golang
- 2022-10-30 C語(yǔ)言算法練習(xí)之?dāng)?shù)組元素排序_C 語(yǔ)言
- 2022-09-14 Python詳細(xì)講解淺拷貝與深拷貝的使用_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支