前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据清洗之 字符串数据处理

数据清洗之 字符串数据处理

原创
作者头像
ruochen
修改2021-05-14 10:02:10
4440
修改2021-05-14 10:02:10
举报

字符串数据处理

  • Pandas中提供了字符串的函数,但只能对字符型变量进行使用
  • 通过str方法访问相关属性
  • 可以使用字符串的相关方法进行数据处理

函数名称 | 说明

  • | - | contains() | 返回表示各str是否含有指定模式的字符串 replace() | 替换字符串 lower() | 返回字符串的副本,其中所有字母都转换为小写 upper() | 返回字符串的副本,其中所有字母都转换为大写 split() | 返回字符串中的单词列表 strip() | 删除前导和后置空格 join() | 返回一个字符串,该字符串是给定序列中所有字符串的连接
代码语言:txt
复制
import pandas as pd
import numpy as np
import os
代码语言:txt
复制
os.getcwd()
代码语言:txt
复制
'D:\\Jupyter\\notebook\\Python数据清洗实战\\数据清洗之数据转换'
代码语言:txt
复制
os.chdir('D:\\Jupyter\\notebook\\Python数据清洗实战\\数据')
代码语言:txt
复制
df = pd.read_csv('MotorcycleData.csv', encoding='gbk')
代码语言:txt
复制
df.head(5)

<div>

<style scoped>

代码语言:txt
复制
.dataframe tbody tr th:only-of-type {
代码语言:txt
复制
    vertical-align: middle;
代码语言:txt
复制
}
代码语言:txt
复制
.dataframe tbody tr th {
代码语言:txt
复制
    vertical-align: top;
代码语言:txt
复制
}
代码语言:txt
复制
.dataframe thead th {
代码语言:txt
复制
    text-align: right;
代码语言:txt
复制
}

</style>

<table border="1" class="dataframe">

<thead>

代码语言:txt
复制
<tr style="text-align: right;">
代码语言:txt
复制
  <th></th>
代码语言:txt
复制
  <th>Condition</th>
代码语言:txt
复制
  <th>Condition_Desc</th>
代码语言:txt
复制
  <th>Price</th>
代码语言:txt
复制
  <th>Location</th>
代码语言:txt
复制
  <th>Model_Year</th>
代码语言:txt
复制
  <th>Mileage</th>
代码语言:txt
复制
  <th>Exterior_Color</th>
代码语言:txt
复制
  <th>Make</th>
代码语言:txt
复制
  <th>Warranty</th>
代码语言:txt
复制
  <th>Model</th>
代码语言:txt
复制
  <th>...</th>
代码语言:txt
复制
  <th>Vehicle_Title</th>
代码语言:txt
复制
  <th>OBO</th>
代码语言:txt
复制
  <th>Feedback_Perc</th>
代码语言:txt
复制
  <th>Watch_Count</th>
代码语言:txt
复制
  <th>N_Reviews</th>
代码语言:txt
复制
  <th>Seller_Status</th>
代码语言:txt
复制
  <th>Vehicle_Tile</th>
代码语言:txt
复制
  <th>Auction</th>
代码语言:txt
复制
  <th>Buy_Now</th>
代码语言:txt
复制
  <th>Bid_Count</th>
代码语言:txt
复制
</tr>

</thead>

<tbody>

代码语言:txt
复制
<tr>
代码语言:txt
复制
  <th>0</th>
代码语言:txt
复制
  <td>Used</td>
代码语言:txt
复制
  <td>mint!!! very low miles</td>
代码语言:txt
复制
  <td>$11,412</td>
代码语言:txt
复制
  <td>McHenry, Illinois, United States</td>
代码语言:txt
复制
  <td>2013.0</td>
代码语言:txt
复制
  <td>16,000</td>
代码语言:txt
复制
  <td>Black</td>
代码语言:txt
复制
  <td>Harley-Davidson</td>
代码语言:txt
复制
  <td>Unspecified</td>
代码语言:txt
复制
  <td>Touring</td>
代码语言:txt
复制
  <td>...</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>FALSE</td>
代码语言:txt
复制
  <td>8.1</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>2427</td>
代码语言:txt
复制
  <td>Private Seller</td>
代码语言:txt
复制
  <td>Clear</td>
代码语言:txt
复制
  <td>True</td>
代码语言:txt
复制
  <td>FALSE</td>
代码语言:txt
复制
  <td>28.0</td>
代码语言:txt
复制
</tr>
代码语言:txt
复制
<tr>
代码语言:txt
复制
  <th>1</th>
代码语言:txt
复制
  <td>Used</td>
代码语言:txt
复制
  <td>Perfect condition</td>
代码语言:txt
复制
  <td>$17,200</td>
代码语言:txt
复制
  <td>Fort Recovery, Ohio, United States</td>
代码语言:txt
复制
  <td>2016.0</td>
代码语言:txt
复制
  <td>60</td>
代码语言:txt
复制
  <td>Black</td>
代码语言:txt
复制
  <td>Harley-Davidson</td>
代码语言:txt
复制
  <td>Vehicle has an existing warranty</td>
代码语言:txt
复制
  <td>Touring</td>
代码语言:txt
复制
  <td>...</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>FALSE</td>
代码语言:txt
复制
  <td>100</td>
代码语言:txt
复制
  <td>17</td>
代码语言:txt
复制
  <td>657</td>
代码语言:txt
复制
  <td>Private Seller</td>
代码语言:txt
复制
  <td>Clear</td>
代码语言:txt
复制
  <td>True</td>
代码语言:txt
复制
  <td>TRUE</td>
代码语言:txt
复制
  <td>0.0</td>
代码语言:txt
复制
</tr>
代码语言:txt
复制
<tr>
代码语言:txt
复制
  <th>2</th>
代码语言:txt
复制
  <td>Used</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>$3,872</td>
代码语言:txt
复制
  <td>Chicago, Illinois, United States</td>
代码语言:txt
复制
  <td>1970.0</td>
代码语言:txt
复制
  <td>25,763</td>
代码语言:txt
复制
  <td>Silver/Blue</td>
代码语言:txt
复制
  <td>BMW</td>
代码语言:txt
复制
  <td>Vehicle does NOT have an existing warranty</td>
代码语言:txt
复制
  <td>R-Series</td>
代码语言:txt
复制
  <td>...</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>FALSE</td>
代码语言:txt
复制
  <td>100</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>136</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>Clear</td>
代码语言:txt
复制
  <td>True</td>
代码语言:txt
复制
  <td>FALSE</td>
代码语言:txt
复制
  <td>26.0</td>
代码语言:txt
复制
</tr>
代码语言:txt
复制
<tr>
代码语言:txt
复制
  <th>3</th>
代码语言:txt
复制
  <td>Used</td>
代码语言:txt
复制
  <td>CLEAN TITLE   READY TO RIDE HOME</td>
代码语言:txt
复制
  <td>$6,575</td>
代码语言:txt
复制
  <td>Green Bay, Wisconsin, United States</td>
代码语言:txt
复制
  <td>2009.0</td>
代码语言:txt
复制
  <td>33,142</td>
代码语言:txt
复制
  <td>Red</td>
代码语言:txt
复制
  <td>Harley-Davidson</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>Touring</td>
代码语言:txt
复制
  <td>...</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>FALSE</td>
代码语言:txt
复制
  <td>100</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>2920</td>
代码语言:txt
复制
  <td>Dealer</td>
代码语言:txt
复制
  <td>Clear</td>
代码语言:txt
复制
  <td>True</td>
代码语言:txt
复制
  <td>FALSE</td>
代码语言:txt
复制
  <td>11.0</td>
代码语言:txt
复制
</tr>
代码语言:txt
复制
<tr>
代码语言:txt
复制
  <th>4</th>
代码语言:txt
复制
  <td>Used</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>$10,000</td>
代码语言:txt
复制
  <td>West Bend, Wisconsin, United States</td>
代码语言:txt
复制
  <td>2012.0</td>
代码语言:txt
复制
  <td>17,800</td>
代码语言:txt
复制
  <td>Blue</td>
代码语言:txt
复制
  <td>Harley-Davidson</td>
代码语言:txt
复制
  <td>NO WARRANTY</td>
代码语言:txt
复制
  <td>Touring</td>
代码语言:txt
复制
  <td>...</td>
代码语言:txt
复制
  <td>NaN</td>
代码语言:txt
复制
  <td>FALSE</td>
代码语言:txt
复制
  <td>100</td>
代码语言:txt
复制
  <td>13</td>
代码语言:txt
复制
  <td>271</td>
代码语言:txt
复制
  <td>OWNER</td>
代码语言:txt
复制
  <td>Clear</td>
代码语言:txt
复制
  <td>True</td>
代码语言:txt
复制
  <td>TRUE</td>
代码语言:txt
复制
  <td>0.0</td>
代码语言:txt
复制
</tr>

</tbody>

</table>

<p>5 rows × 22 columns</p>

</div>

代码语言:txt
复制
df.info()
代码语言:txt
复制
<class 'pandas.core.frame.DataFrame'>
代码语言:txt
复制
RangeIndex: 7493 entries, 0 to 7492
代码语言:txt
复制
Data columns (total 22 columns):
代码语言:txt
复制
Condition         7493 non-null object
代码语言:txt
复制
Condition_Desc    1656 non-null object
代码语言:txt
复制
Price             7493 non-null object
代码语言:txt
复制
Location          7491 non-null object
代码语言:txt
复制
Model_Year        7489 non-null float64
代码语言:txt
复制
Mileage           7468 non-null object
代码语言:txt
复制
Exterior_Color    6778 non-null object
代码语言:txt
复制
Make              7489 non-null object
代码语言:txt
复制
Warranty          5109 non-null object
代码语言:txt
复制
Model             7370 non-null object
代码语言:txt
复制
Sub_Model         2426 non-null object
代码语言:txt
复制
Type              6011 non-null object
代码语言:txt
复制
Vehicle_Title     268 non-null object
代码语言:txt
复制
OBO               7427 non-null object
代码语言:txt
复制
Feedback_Perc     6611 non-null object
代码语言:txt
复制
Watch_Count       3517 non-null object
代码语言:txt
复制
N_Reviews         7487 non-null object
代码语言:txt
复制
Seller_Status     6868 non-null object
代码语言:txt
复制
Vehicle_Tile      7439 non-null object
代码语言:txt
复制
Auction           7476 non-null object
代码语言:txt
复制
Buy_Now           7256 non-null object
代码语言:txt
复制
Bid_Count         2190 non-null float64
代码语言:txt
复制
dtypes: float64(2), object(20)
代码语言:txt
复制
memory usage: 1.3+ MB
代码语言:txt
复制
# 里面有字符串,不能进行转换
# df['Price'].astype(float)
代码语言:txt
复制
# .str 方法可用于提取字符
df['Price'].str[1:3].head(5)
代码语言:txt
复制
0    11
代码语言:txt
复制
1    17
代码语言:txt
复制
2    3,
代码语言:txt
复制
3    6,
代码语言:txt
复制
4    10
代码语言:txt
复制
Name: Price, dtype: object
代码语言:txt
复制
# 首先要对字符串进行相关处理
df['价格'] = df['Price'].str.strip('$')
代码语言:txt
复制
df['价格'].head(5)
代码语言:txt
复制
0    11,412 
代码语言:txt
复制
1    17,200 
代码语言:txt
复制
2     3,872 
代码语言:txt
复制
3     6,575 
代码语言:txt
复制
4    10,000 
代码语言:txt
复制
Name: 价格, dtype: object
代码语言:txt
复制
df['价格'] = df['价格'].str.replace(',', '')
代码语言:txt
复制
df['价格'].head(5)
代码语言:txt
复制
0    11412 
代码语言:txt
复制
1    17200 
代码语言:txt
复制
2     3872 
代码语言:txt
复制
3     6575 
代码语言:txt
复制
4    10000 
代码语言:txt
复制
Name: 价格, dtype: object
代码语言:txt
复制
df['价格'] = df['价格'].astype(float)
代码语言:txt
复制
df['价格'].head(5)
代码语言:txt
复制
0    11412.0
代码语言:txt
复制
1    17200.0
代码语言:txt
复制
2     3872.0
代码语言:txt
复制
3     6575.0
代码语言:txt
复制
4    10000.0
代码语言:txt
复制
Name: 价格, dtype: float64
代码语言:txt
复制
df.dtypes
代码语言:txt
复制
Condition          object
代码语言:txt
复制
Condition_Desc     object
代码语言:txt
复制
Price              object
代码语言:txt
复制
Location           object
代码语言:txt
复制
Model_Year        float64
代码语言:txt
复制
Mileage            object
代码语言:txt
复制
Exterior_Color     object
代码语言:txt
复制
Make               object
代码语言:txt
复制
Warranty           object
代码语言:txt
复制
Model              object
代码语言:txt
复制
Sub_Model          object
代码语言:txt
复制
Type               object
代码语言:txt
复制
Vehicle_Title      object
代码语言:txt
复制
OBO                object
代码语言:txt
复制
Feedback_Perc      object
代码语言:txt
复制
Watch_Count        object
代码语言:txt
复制
N_Reviews          object
代码语言:txt
复制
Seller_Status      object
代码语言:txt
复制
Vehicle_Tile       object
代码语言:txt
复制
Auction            object
代码语言:txt
复制
Buy_Now            object
代码语言:txt
复制
Bid_Count         float64
代码语言:txt
复制
价格                float64
代码语言:txt
复制
dtype: object
代码语言:txt
复制
# 字符串分割
df['Location'].str.split(',').str[0].head(5)
代码语言:txt
复制
0          McHenry
代码语言:txt
复制
1    Fort Recovery
代码语言:txt
复制
2          Chicago
代码语言:txt
复制
3        Green Bay
代码语言:txt
复制
4        West Bend
代码语言:txt
复制
Name: Location, dtype: object
代码语言:txt
复制
# 计算字符串的长度
df['Location'].str.len().head(5)
代码语言:txt
复制
0    32.0
代码语言:txt
复制
1    34.0
代码语言:txt
复制
2    32.0
代码语言:txt
复制
3    35.0
代码语言:txt
复制
4    35.0
代码语言:txt
复制
Name: Location, dtype: float64

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符串数据处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档