数据处理无所不在,掌握常用技巧,事半功倍。
此系列使用 Pandas 开展数据处理分析,总结其中常用、好用的数据分析技巧。
我使用的 Pandas 版本如下,顺便也导入 Pandas 库。
1 2 3
| >>> import pandas as pd >>> pd.__version__ '0.25.1'
|
今天使用的数据集名称:IMDB-Movie-Data,取自 Kaggle,百度网盘下载链接如下:
链接: https://pan.baidu.com/s/15u7Hf2y5dSFwek2vA1-zjg 提取码: bvfx
在开始前先确保解释器和数据集在同一目录下:
1 2 3 4
| >>> import os >>> os.chdir('D://source/dataset') # 这是我的数据集所在目录 >>> os.listdir() # 确认此目录已经存在 IMDB-Movie-Data 数据集 ['drinksbycountry.csv', 'IMDB-Movie-Data.csv', 'movietweetings', 'titanic_eda_data.csv', 'titanic_train_data.csv']
|
准备工作就位后,正式开始数据处理技巧之旅。
1 Pandas 移除某列
导入数据
1 2 3 4 5 6
| >>> df = pd.read_csv("IMDB-Movie-Data.csv") >>> df.head(1) # 导入并显示第一行 Rank Title Genre ... Votes Revenue (Millions) Metascore 0 1 Guardians of the Galaxy Action,Adventure,Sci-Fi ... 757074 333.13 76.0
[1 rows x 12 columns]
|
使用 pop 方法移除指定列:
1
| >>> meta = df.pop("Title").to_frame() # 移除 Title 列
|
确认是否已被移除:
1 2 3 4 5
| >>> df.head(1) # df 变为 11列 Rank Genre ... Revenue (Millions) Metascore 0 1 Action,Adventure,Sci-Fi ... 333.13 76.0
[1 rows x 11 columns]
|
2 统计标题单词数
pop 后得到 meta,显示 meta 前 3 行:
1 2 3 4 5
| >>> meta.head(3) Title 0 Guardians of the Galaxy 1 Prometheus 2 Split
|
标题是由单词组成,中间用空格分隔。
1 2 3 4 5 6 7
| # .str.count(" ") + 1 得到单词个数 >>> meta["words_count"] = meta["Title"].str.count(" ") + 1 >>> meta.head(3) # words_count 列代表单词个数 Title words_count 0 Guardians of the Galaxy 4 1 Prometheus 1 2 Split 1
|
3 Genre 频次统计
下面统计电影 Genre 的频次,
1
| >>> vc = df["Genre"].value_counts()
|
下面显示电影 Genre 的 Top5 ,最高频为出现 50 次的 Action,Adventure,Sci-Fi 类,次之为 48 次的 Drama 类:
1 2 3 4 5 6 7
| >>> vc.head() Action,Adventure,Sci-Fi 50 Drama 48 Comedy,Drama,Romance 35 Comedy 32 Drama,Romance 31 Name: Genre, dtype: int64
|
展示 Top5 的饼状图:
1 2 3 4
| >>> import matplotlib.pyplot as plt >>> vc[:5].plot(kind='pie') <matplotlib.axes._subplots.AxesSubplot object at 0x000001D65B114948> >>> plt.show()
|
