windows服务器怎么建设网站,加强网站基础建设,工程私人承包协议书,全屏wordpress一、pandas常用数据类型 series#xff0c;带标签的一维数组。类似于字典#xff0c;但是键作为索引。 datatimeindex#xff0c;时间序列。 dataframe#xff0c;带标签且大小可变的二维表格结构。 panel#xff0c;带标签且大小可变的三维数组。 1.一维数组与操…一、pandas常用数据类型
· series带标签的一维数组。类似于字典但是键作为索引。
· datatimeindex时间序列。
· dataframe带标签且大小可变的二维表格结构。
· panel带标签且大小可变的三维数组。 1.一维数组与操作 Series
s pd.Series(range())
s pd.Series(dict{ })
abs(s)
s 5
s.add_prefix(x)在每个索引前面加上x
s.add_suffix(x)在每个索引后面加上x #画出数据直方图
s.hist()
plt.show() #最大索引
s.idxmax() #查看值是否在指定区间内
s.between(a,b) #查看满足某一条件的值
s[ss.median()] 2.时间序列与操作
主要包括data_range函数和Timestamp类。 pd.data_range(startNone, endNone, periodsNone, freqD, tzNone, normalizeFalse, nameNone, closedNone, **kwargs)
其中
· start和end指定起止日期。
· periods指定生成的数据数量。
· freq指定时间间隔默认是D表示相邻两个日期相差多少。还有W 周、H 小时、M 月末最后一天、MS 月初第一天、T 分钟、Y 年末最后一天、YS 年初第一天。 pd.Timestamp(20241013.day_name()) # 查看这天周几
pd.Timestamp(20241013.is_leap_year) # 查看是否是闰年
pd.Timestamp(20241013.quarter) # 查看季度
pd.Timestamp(20241013.month) # 查看月份 3.二维数组DataFrame
可以看作一个二维表格(excel)由索引、列名、值组成。
pandas支持多种方式创建DF如readcsv、readexcel等。 #生成5行6列1-20的随机数自定义索引自定义列。
df pd.DataFrame(np.random.randint(1, 20, (5, 6)), index range(5), columns []) #使用字典作为值和索引
df pd.DataFrame(dict{}, index) 4.DF数据处理
# excel读取
pandas.read_excel( io, sheet_name0, header0, namesNone, index_colNone, usecolsNone, squeezeFalse, dtypeNone, engineNone, convertersNone, true_valuesNone, false_valuesNone, skiprowsNone, nrowsNone, na_valuesNone, keep_default_naTrue, verboseFalse, parse_datesFalse, date_parserNone, thousandsNone, commentNone, skipfooter0, convert_floatTrue, mangle_dupe_colsTrue, **kwds
)
其中
· io指定文件路径、对象。
· sheet_name指定读取的worksheet可以是sheet序号或是名字或者是一个列表。如果值指定为None则表示读取所有worksheet并返回多个DF构成的字典。
· header指定worksheet中表示表头的行索引默认为0。如果没有作为表头的行必须明确写出header None。
· skiprows指定要跳过的行索引组成的列表。
· index_col指定作为索引的列下标。
· names指定读取数据后使用的列名。
· usecols指定要读取的列的索引或名字。
· na_values指定哪些值被解释为缺失值。 # 条件筛选
df[a: b]
df.iloc[index行, index列]通过索引访问某行某列。
df.loc[index行列名]通过列名访问。
df.at[index行列名]同上。
df[行][列]可以是列表可以是索引。
df[列名].sum()/max()/min()
df.列名
df[df[列名].isin([, , , ,])][列名].sum()找出满足条件的行。 #查看数据特征
df.describe()查看统计信息。包括总数 平均数 方差 最大最小等。
df.median()
df.nsmallest()
df.nlargest()
df[列名].idxmax()/idxmin()某列最小值/最大值对应的行下标。 #对数据排序
sort_index(axis0, ascendingTrue, inplaceFalse, kindquicksort, na_positionlast, sort_remainingTrue)沿某个方向
其中
· axis0是按照行索引axis1是按照列索引。
· ascending默认表示升序flase表示降序。
· inplace默认表示返回新的排序后的DFTrue表示原地排序。
· na_position指定把缺失值放在哪里。last/first。 sort_values(by, 同上)
其中
· by指定依据哪个列进行排序支持列名/列表。 #分组和聚合
重点
groupby(byNone, axis0, levelNone, as_indexTrue, sortTrue, group_keysTrue, squeezeFalse, **kwargs)
其中
· by指定作用于index的函数、字典根据键进行分组、值作为分组后的index或指定列名作为分组依据。
· squeeze会在可能的情况下降低结果对象的维度。 #处理异常值 噪声
df[df[]x] a直接替换掉。 #处理缺失值
dropna(axis0, howany, threshNone, subsetNone, inplaceFalse)
其中
· howany表示某行只要存在缺失值就删掉这行howall表示某行全是缺失值才删除。
· thresh表示保留包含几个非缺失值数据的行。
· subset指定在判断缺失值的时候考虑哪些列。 fillna(valueNone, methodNone, axis0, inplaceFalse, limitNone, downcastNone)
其中
· value指定要替换的值。
· method指定填充值的方式包括pad ffillbackfill bfill。
· limit指定设置method时最多填充多少个连续的缺失值。 # 处理重复值
duplicated(subsetNone, keepfirst) 检测重复值
其中
· subset指定依据哪一列/多列判断重复。默认使用每行的所有列。
· keepfirst表示将重读数据的第一次出现标记为falsekeeplast表示重复数据最后一次出现标记为falsekeepfalse表示所有重复数据都是true。
df[df.duplicated()] drop_duplicates(subsetNone, keepfirst, inplaceFalse) 删除重复值 #数据差分
可以看出来每行/每列的差距。
diff(periods1, axis0)
其中
· axis0表示纵向差分axis1表示横向差分。
· period指定差分的跨度periodx表示每一行减去上面第x行的数据。 # 重采样
如果DF中索引是日期时间可以使用resample()重采样按照时间段统计。
resample(rule, howNone, axis0, labelNone, onNone)
其中
· rule指定重采样的时间间隔同时间序列的freq参数。
· on指定根据哪一列进行重采样要求必须是日期时间类型。
· labelright指定使用采样时间的结束时间作为DF的indexlabelleft指定。。开始时间。。 # 多索引
DF支持多个索引在groupby()和sort_index()方法中用level可以指定按照哪一级索引进行排序或分组。 # pandas属性接口
Series对象和DF的列数据提供了dt、str的属性接口分别对应日期和字符串。通过接口可以快速实现特定功能。
dt接口
· dayofweek, dayofyear, is_leap_year, quarter, day_name()等。
str接口
· center, contains, count, endswith, find, extract, lower, split等。 # 数据拆分与合并
可以对DF进行切片 或者 loc按行按列运算进行拆分
可以用concat(objs, axis0, joinouter)合并
其中
· objs包含多个series DF panel对象 [序列]。
· axis默认为0表示纵向合并。
可以用append(other, ignore_indexFalse)合并
可以忽略原来的索引。