Python学习笔记(8)Pandas统计分析1

1.1 文本文件读取与储存

pandas. read_csv (filepath_or_buffer, sep=’,’, header=’infer’, names=None, index_col=None, dtype=None, engine=None, nrows=None)

sep–分隔符,read_csv默认为”,”,read_table默认为制表符。

header–表示将某行数据作为列名,默认infer为自动识别

names–列名

index_col–索引列位置

DataFrame. to_csv (path_or_buf=None, sep=’,’, na_rep=”, columns=None, header=True, index=True,index_label=None,mode=’w’,encoding=None)

1.2 excel文件读取与储存

pandas. read_excel (io, sheetname=0, header=0, index_col=None, names=None, dtype=None)

dtype–接收字典

DataFrame. to_excel (excel_writer=None, sheetname=None’, na_rep=”, header=True, index=True, index_label=None, mode=’w’, encoding=None)

2.1 查看访问DataFrame中的数据

使用字典访问:DataFrame[‘列名称’]

使用访问属性:DataFrame.列名称 #(不推荐)

访问这一列的前五个元素(含表头):DataFrame[‘列名称’][:5]

访问多列的多行数据:DataFrame[‘列名称1’,’列名称2’][:5]

DataFrame[:][1:5]

DataFrame.head()前5行

DataFrame.tail()后5行

默认都是5,可在()内添加访问行数

DataFrame.loc[:, ‘列名称’]

DataFrame.iloc[:, 列索引]

DataFrame.loc[:, [‘列名称1’, ‘列名称2’]]

DataFrame.iloc[:, [1, 3]] #提取第一列和第三列

DataFrame.loc[2:6, [‘列名称1’, ‘列名称2’]] # #行名为2-6 列名为列名称1 列名称2的数据

loc函数传入的索引若为区间,则是闭区间

DataFrame.iloc[2:7, [1,3] ] #列位置为1 3 行位置为2-6

iloc函数传入的索引若为区间,则是前闭后开区间

DataFrame.loc[data_csv[“writing score”] == a,[‘列名称’]]

DataFrame.iloc[(data_csv[“writing score”] == a).values, [列索引]]

2.2 更改DataFrame中的数据

原理:提取出来,重新赋值,但是会更改原数据

DataFrame.loc[DataFrame[‘abc’]=100, ‘abc’] = ‘1’#将abc中等于100的值换位1

2.3 增添DataFrame中的数据

DataFrame[‘新增列名称’] = DataFrame[‘列名称1’]*DataFrame[‘列名称2’]

DataFrame[‘新增列名称’] = ‘新增列的值’

DataFrame.insert(列索引, 列名称, 数据, allow_duplicates=False)

最后一项参数为,是否允许列名重复

pd.append() 只能实现在最后增加一行,需要将原始的DataFrame拆分,再插入数据后将其合并。

待插入行索引
row_n = 1
待插入数据,以一维列表为例
d = [["*"] * 4]
拆分
DataFrame1 = [:row_n]
DataFrame2 = [row_n:]
参数:添加数据,是否无视行索引
DataFrame = DataFrame1.append(d,ignore_index=True).append(DataFrame2,ignore_index=True)
def df_insert(df, n, arr, ignore_index=True):
"""
 DataFrame任意位置添加一行
 :param df: DataFrame
 :param n: 添加行号索引
 :param arr: 添加数据
 :param ignore_index: 是否无视行索引,为True则重新从0生成df的行号
 :return: DataFrame
"""
 # 如果原df列名被修改,则需要给新插入的行也赋予列名
 # arr = pd.DataFrame(np.array(arr).reshape((1, len(arr))), columns=df.columns)
 # 否则直接插入二维数组即可
 arr = [arr]
 df1 = df[:n]
 df2 = df[n:]
 df0 = df1.append(arr, ignore_index).append(df2, ignore_index)
 return df0

待插入行索引
row_n = 1
待插入数据,以一维列表为例
d = ["*"] * 4
调用方法
pd_arr = df_insert(pd_arr, row_n, d)

2.4 删除DataFrame中的数据

DataFrame.drop(labels, axis, inplace)

labels–删除行或者列的标签

axis–0为横轴 1为纵轴,默认为0

inplace–操作是否对原数据生效,默认为False

labels为列标签

labels为行索引,可用range函数

2.5 描述分析DataFrame

中位数median 极差ptp 标准差std 协方差cov

1)np.mean求某一列的均值

np.mean(DataFrame[‘列名称’])

2)pandas实现求某一列均值

DataFrame[‘列名称’].mean()

3)describe函数实现数值型特征的描述性统计

DataFrame[[‘列名称1’, ‘列名称2’]].discribe()

sem标准误差 skew样本偏差 quantile四分位数 mode众数 kurt样本峰值

对某一类频数出现前十名进行统计

DataFrame[‘列名称’].value_counts()[0: 10]

Original: https://blog.csdn.net/gm1_1/article/details/124151374
Author: 留校察看的阿车
Title: Python学习笔记(8)Pandas统计分析1

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/679024/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球