日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

進行數據處理的6個?Python?代碼塊分享_python

作者:Python學習與數據挖掘 ? 更新時間: 2022-06-07 編程語言

前言:

大家好,今天和大家分享自己總結的6個常用的 Python 數據處理代碼,對于經常處理數據的coder最好熟練掌握。

1、選取有空值的行

在觀察數據結構時,該方法可以快速定位存在缺失值的行。

df = pd.DataFrame({'A': [0, 1, 2],
? ? ? ? ? ? ? ? ? ?'B': [0, 1, None],
? ? ? ? ? ? ? ? ? ?'C': [0, None, 2]})
df[df.isnull().T.any()]

輸出:

? A ? B ? C ? ? ? ? ? A ? B ? C
0 0 0.0 0.0 ? ? ? ? 1 1 1.0 NaN
1 1 1.0 NaN ? --> ? 2 2 NaN 2.0
2 2 NaN 2.0

2、快速替換列值

實際數據處理經常會根據一些限定條件來替換列中的值。

df = pd.DataFrame({'name':['Python', 'Java', 'C']})

# 第一種方式
df['name'].replace('Java', 'JavaScript', inplace=True)
# 第二種方式
df.loc[df['name'].str.contains('Java'), 'name'] = 'JavaScript'

輸出:

? ? ?name ? ? ? ? ? ? ? ? ? name
0 ?Python ? ? ? ? ?0 ? ? ?Python
1 ? ?Java ? ?---> ?1 ?JavaScript
2 ? ? ? C ? ? ? ? ?2 ? ? ? ? ? C

3、對列進行分區

很多情況下,對于數值類型的數據,我們需要分區來計算每個區間數據出現的頻率。這時用 pd.cut 就能很好的解決這一問題。

import random

age = random.sample(range(90), 20)
cut_res = pd.cut(age, bins=[0, 18, 35, 60, 90])
# cut_res type:
cut_res.value_counts()

輸出:

(0, 18] ? ? 6
(18, 35] ? ?1
(35, 60] ? ?6
(60, 90] ? ?7

4、將一列分為多列

在文本數據清洗時,一些列中存在分隔符(‘’, ‘,’, ‘:’)分隔的值,我們只需將該列根據分隔符進行 split 即可。

import pandas as pd

df = pd.DataFrame({'address': ['四川省 成都市',
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'湖北省 武漢市',
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'浙江省 杭州市']})
res = df['address'].str.split(' ', expand=True) ?
res.columns = ['province', 'city']

輸出:

? province city
0 四川省 ? ?成都市
1 湖北省 ? ?武漢市
2 浙江省 ? ?杭州市

expand參數選擇是否擴展為 DataFrame,False 則返回 Series

5、中文篩選

同樣在清洗過程中,往往會出現一些不需要的中文字段,這時直接用 str.contains 篩選即可。

df = pd.DataFrame({'mobile_phone':
? ? ? ? ? ? ? ? ? ?['15928765644',
? ? ? ? ? ? ? ? ? ? '15567332235',
? ? ? ? ? ? ? ? ? ? '暫無']})
df[~df['mobile_phone'].str.contains('[\u4e00-\u9fa5]')]

輸出:

? mobile_phone ? ? ? ? mobile_phone
0 15928765644 ? ? ? ?0 15928765644
1 15567332235 ? --> ?1 15567332235
2 暫無

6、更改列的位置

有時我們需要調整列的位置,當數據列較少時,可以用下面的方式

df = pd.DataFrame({'name': ['A', 'B', 'C'],
? ? ? ? ? ? ? ? ? ?'age': [10, 20, 30],
? ? ? ? ? ? ? ? ? ?'gender': [0, 1, 0]})
df = df[['name', 'gender', 'age']]

輸出:

?name age gender ? ?name gender age
0 ? A ?10 0 ? ? ? ?0 ? A 0 ? ? ? 10
1 ? B ?20 1 ? --> ?1 ? B 1 ? ? ? 20
2 ? C ?30 0 ? ? ? ?2 ? C 0 ? ? ? 30

如果列較多,那么,一個個列舉出來會比較繁瑣,推薦下面插入的方式。

col = df['gender']
df.drop('gender', axis=1, inplace=True)
df.insert(1, 'gender', col)

原文鏈接:https://blog.csdn.net/weixin_38037405/article/details/123964579

欄目分類
最近更新