- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Pandas 数据处理,数据清洗详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
|
# -*-coding:utf-8-*-
from
pandas
import
DataFrame
import
pandas as pd
import
numpy as np
"""
获取行列数据
"""
df
=
DataFrame(np.random.rand(
4
,
5
), columns
=
[
'A'
,
'B'
,
'C'
,
'D'
,
'E'
])
print
df
print
df[
'col_sum'
]
=
df.
apply
(
lambda
x: x.
sum
(), axis
=
1
)
# 横向求和,axis=1表示横向
df.loc[
'row_sum'
]
=
df.
apply
(
lambda
x: x.
sum
())
# loc获取一整列的数据,对一列数据进行求和
print
df
print
dd
=
pd.DataFrame(np.arange(
0
,
60
,
2
).reshape(
10
,
3
), columns
=
list
(
'abc'
))
# loc获取一整列的数据
print
dd
print
print
dd.loc[
0
:
len
(dd),
'a'
]
print
print
dd.loc[
0
:
3
, [
'a'
,
'b'
]]
print
print
dd.loc[[
1
,
5
], [
'b'
,
'c'
]]
print
'--------------------------------------'
# iloc获取某个位置的元素,或者某个区域的元素
print
dd.iloc[
1
,
1
]
print
dd.iloc[
0
:
3
, [
0
,
1
]]
print
dd.iloc[[
0
,
3
,
5
],
0
:
2
]
print
'--------------------------------------'
"""
去重函数 drop_duplicates()
"""
from
pandas
import
Series, DataFrame
data
=
DataFrame({
'k'
: [
1
,
1
,
2
,
2
]})
print
data
print
type
(data)
# <class 'pandas.core.frame.DataFrame'>
print
isduplicates
=
data.duplicated()
# duplicated()判断是否是重复的项
print
isduplicates
print
type
(isduplicates)
# <class 'pandas.core.series.Series'>
print
data
=
data.drop_duplicates()
# drop_duplicates()移除重复的项
print
data
print
type
(data)
# <class 'pandas.core.frame.DataFrame'>
print
'-------------------------------------------------'
"""
Pandas.DataFrame 读取、合并、修改列数据、新增列、分组、分组数据计算
"""
import
numpy as np
import
pandas as pd
from
pandas
import
Series, DataFrame
from
datetime
import
timedelta, datetime
from
dateutil.parser
import
parse
"""
读写csv文件
"""
# 读取csv文件
df
=
pd.read_csv(
'data_english.csv'
, encoding
=
'gbk'
)
# print df
print
type
(df)
# <class 'pandas.core.frame.DataFrame'>
print
df.columns
# 所有列的标签
print
df.index
# 所有行的标签
print
df.book_id
# 选择某一列,可以使用df.book_id ,也可以使用df['book_id']
print
type
(df.book_id)
# <class 'pandas.core.series.Series'>
print
np.array(df.book_id)
# 将Series转换为numpy的darray格式
print
'---------------------------------------------------------'
# 写入csv文件
# df.to_csv('dat.csv', index=False, encoding='gbk') # index=False表示不把index写入文件
"""
行列的选取
"""
print
df.read_name
# 选择一列
print
df[:
3
]
# 选择前3行
print
df.loc[:, (
'read_num'
,
'read_name'
)]
# df.loc[行标签,列标签]
print
df.iloc[
2
,
4
]
# df.iloc[行位置,列位置]
print
df.ix[
2
,
4
]
# df.ix[行位置或行标签,列位置或列标签]
# bool判断
print
df[df.read_name
=
=
u
'山问萍'
].head()
# 获取符合条件的行列
print
df[(df.read_name
=
=
u
'山问萍'
) & (df.book
=
=
u
'植物生理学实验教程'
)]
# 多个条件
print
'----------------------------------------------'
"""
两个df相merge
"""
# pd.concat([df1, df2]) # 两个df的column都一样,index不重复(增加列)
# pd.concat([df1, df2], axis=1) # 两个df的index都一样,column不重复(增加行)
"""
增加列,删除列,重命名某一列
"""
# df['new_col'] = xxx # 直接增加一列,加到最后一列
# df.insert[1, 'new_col'] # 使用df.insert 插入一列,可以设置这一列的位置
# del df['one_col'] # 直接使用del进行删除,删除某一列
# df = df.rename(columns={'old_name': 'new_name'}) # 重命名某一列
# df = df.rename(columns={'old_name': 'new_name'}, inplace=True)
# print '--------------------------------------------------------'
"""
apply(): 对dataframe的内容进行批量处理,比循环更快
map(),
agg():对分组的结果再分别进行不同的操作
"""
"""
数据合并
"""
import
numpy as np
import
pandas as pd
data1
=
pd.DataFrame({
'level'
: [
'a'
,
'b'
,
'c'
,
'd'
],
'number'
: [
1
,
3
,
5
,
7
]})
data2
=
pd.DataFrame({
'level'
: [
'a'
,
'b'
,
'c'
,
'e'
],
'number'
: [
2
,
3
,
4
,
5
]})
print
data1
print
data2
print
pd.merge(data1, data2, on
=
'level'
)
# 合并,内连接
data3
=
pd.DataFrame({
'level1'
: [
'a'
,
'b'
,
'c'
,
'd'
],
'number'
: [
1
,
3
,
5
,
7
]})
data4
=
pd.DataFrame({
'level2'
: [
'a'
,
'b'
,
'c'
,
'e'
],
'number'
: [
2
,
3
,
4
,
5
]})
print
pd.merge(data3, data4, left_on
=
'level1'
, right_on
=
'level2'
)
print
pd.merge(data3, data4, left_on
=
'level1'
, right_on
=
'level2'
, how
=
'left'
)
print
'----------------------------------------'
"""
merge参数说明:
left和right:两个不同的DataFrame
how:合并的方式-->inner内连接,right右连接,left左连接,outer外连接,默认为inner
on:用于连接的列索引名称,必须存在于两个DataFrame对象中
left_on:
right_on:
left_index:
right_index:
sort:默认为True,将合并的数据进行排序
suffixes:当列名相同时,合并后,自动添加后缀名称,默认为(_x, _y)
copy:默认为True,复制数据结构
indicator:
"""
"""
重叠数据合并
"""
data3
=
pd.DataFrame({
'level'
: [
'a'
,
'b'
,
'c'
,
'd'
],
'number1'
: [
1
,
3
,
5
, np.nan]})
data4
=
pd.DataFrame({
'level'
: [
'a'
,
'b'
,
'c'
,
'e'
],
'number2'
: [
2
, np.nan,
4
,
5
]})
print
data3.combine_first(data4)
# 相同标签下的内容优先显示data3的内容,如果某个数据缺失,就用另外一个数据补上
"""
数据重塑和轴向旋转
数据重塑:reshape()
轴向旋转:unstack(),stack()
"""
data
=
pd.DataFrame(np.arange(
12
).reshape(
3
,
4
), columns
=
[
'a'
,
'b'
,
'c'
,
'd'
], index
=
[
'wang'
,
'li'
,
'zhang'
])
print
data
print
data.unstack()
# 轴向旋转
print
'---------------------------------'
"""
数据转换
"""
data
=
pd.DataFrame({
'a'
: [
1
,
3
,
3
,
4
],
'b'
: [
1
,
3
,
3
,
5
]})
print
data
print
data.duplicated()
# 判断是否重复行
print
data.drop_duplicates()
# 去除重复行
"""
替换值
"""
data
=
pd.DataFrame({
'a'
: [
1
,
3
,
3
,
4
],
'b'
: [
1
,
3
,
3
,
5
]})
print
data.replace(
1
,
2
)
# 凡是数据1,全部替换成数据2
print
data.replace([
1
,
4
], np.nan)
# 凡是数据1,4,全部替换成np.nan
"""
数据分段
"""
data
=
[
11
,
15
,
18
,
20
,
25
,
26
,
27
,
24
]
bins
=
[
15
,
20
,
25
]
print
data
print
pd.cut(data, bins)
|
以上这篇Pandas 数据处理,数据清洗详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/kevinelstri/article/details/56683220 。
最后此篇关于Pandas 数据处理,数据清洗详解的文章就讲到这里了,如果你想了解更多关于Pandas 数据处理,数据清洗详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
解释 我的应用程序基本上使用带有代表建筑物的多边形叠加层的 map View ,以及注释。为此,它导入了一个名为 Annotation 的自定义类,该类在点击注释时处理弹出详细信息,这意味着它存储建筑
我有一个数据处理问题,我想计算两支球队在不同比赛中的进球数差异。数据如下所示: matchId teamId eventSec 1 2799331 6718 443.55984
如下所示: ? 1
我想知道 cocoa 是否有默认的数据存储方式。如果是,那是什么?我的意思是 Rails 默认使用 sqlite... 此外,我正在寻找有关如何使用它的教程...例如获取数据并将其显示到 ListVi
我正在使用 HTML5 创建在线游戏。我将使用 JSON 字符串通过 Websockets 通信数据,因此典型的字符串将包含被调用的操作以及随之而来的数据: {action: "chat", user
我需要按特定列对一组 csv 行进行分组,并对每个组进行一些处理。 JavaRDD lines = sc.textFile ("somefile
我有一个情况: 基本上有 3 个模块,分别命名为“A”、“B”、“C”。每个模块都涉及多线程。 模块“A”获取高速数据(20ms)并发送。模块“B”的一个线程启动。 模块“B”提取相关数据并执行一些位
我正在处理有关城镇和城镇内区域的 MySQL 数据库中的一些数据。 数据库看起来像这样 ID | NAME 1 | Manchester 2 | Manchester/North 3 | Man
当我注册用户时,我得到一个状态代码 200 和一个 token :“”返回 JSON。如果用户已经存在,那么我会得到状态代码 200 和 html 响应而不是 JSON。我应该如何处理这个问题。提前致
我有一个应用程序,我从网络上下载大量资源,并对每个资源进行一些处理。我不希望这项工作发生在主线程上,但它非常轻量级且优先级较低,因此所有这些工作都可以真正发生在同一个共享工作线程上。这似乎是一件好事,
我目前正在与一家小公司合作,该公司将其所有应用程序数据存储在 AWS Redshift 集群中。我的任务是对该 Redshift 集群中的数据进行一些数据处理和机器学习。 我需要做的第一个任务是根据一
简介 有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理。现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是
1.数组的处理: 1.1 数组的创建和初始化: 1.arrary()函数创建数组,默认情况下0元素是数组的第一个元素, count()和sizeof()函数获得数
我正在尝试将 CKEditor 与 AngularJS 结合使用,用于具有数据绑定(bind)的 WYSIWYG 编辑器,一切似乎都运行良好。极端的可配置性对我们的需求匹配有很大帮助。 我们现在面临表
我正在对负样本和正样本进行文本二元分类任务,我想包括以下所有内容: 处理数据..(例如标记化) 特征选择,例如 Chi2 应用随机投影,因为我有一个大型稀疏矩阵(n_samples:974,n_fea
数据与我在 Pandas 系列: data = ["1. stock1 (1991)", "3. stock13 (1993)", "5. stock19 (1999)", "89. stock
1.字符串的定义与显示 定义:通过””,''来标志 显示:echo()和print(),但print()具有返回值值,1,而echo()没有,但echo比print()要快,
1.正则表达式基础知识 含义:由普通字符和(a-z)和一些特殊字符组成的字符串模式 功能:有效性验证。 替换文本。 从一个字符串提取一个子字符串。&n
我想知道是否可以在我的 Cost Explorer 中发现这个成本背后的资源,按使用类型分组我可以看到它是数据处理字节,但我不知道哪个资源会消耗这个数量数据的。知道如何在 CloudWatch 上发现
我有一个 Json 字符串。我想从该 Json 字符串中获取值。 这是我的 json 字符串{“纬度”:“22.5712854”},{“经度”:“88.4266847”} 我只需要使用 TSQL 查询
我是一名优秀的程序员,十分优秀!