数据处理的 3 个小技巧,都很实用

个人原创,一字一字码的

数据处理无所不在,掌握常用技巧,事半功倍。

此系列使用 Pandas 开展数据处理分析,总结其中常用、好用的数据分析技巧。

我使用的 Pandas 版本如下,顺便也导入 Pandas 库。

>>> import pandas as pd
>>> pd.__version__
'0.25.1'

今天使用的数据集名称:IMDB-Movie-Data,取自 Kaggle,百度网盘下载链接如下:

链接: https://pan.baidu.com/s/15u7Hf2y5dSFwek2vA1-zjg 提取码: bvfx

在开始前先确保解释器和数据集在同一目录下:

>>> 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 移除某列

导入数据

>>> 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 方法移除指定列:

>>> meta = df.pop("Title").to_frame() # 移除 Title 列

确认是否已被移除:

>>> 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 行:

>>> meta.head(3)
                     Title
0  Guardians of the Galaxy
1               Prometheus
2                    Split

标题是由单词组成,中间用空格分隔。

# .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 的频次,

>>> vc = df["Genre"].value_counts()

下面显示电影 Genre 的 Top5 ,最高频为出现 50 次的 Action,Adventure,Sci-Fi 类,次之为 48 次的 Drama 类:

>>> vc.head()
Action,Adventure,Sci-Fi    50
Drama                      48
Comedy,Drama,Romance       35
Comedy                     32
Drama,Romance              31
Name: Genre, dtype: int64

展示 Top5 的饼状图:

>>> import matplotlib.pyplot as plt
>>> vc[:5].plot(kind='pie')
<matplotlib.axes._subplots.AxesSubplot object at 0x000001D65B114948>
>>> plt.show()

原创不易,点个在看

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值