1. 首页 > 电脑手机 >

dataframe 取值 dataframe取单元格的值

人工智能程序设计课程设计

内容与进度安排

1. 内容及要求

dataframe 取值 dataframe取单元格的值dataframe 取值 dataframe取单元格的值


dataframe 取值 dataframe取单元格的值


①利用numpy库中的多项式处理函数,计算函数f(x)=x5+2x3+1 当x=2和x=5时的值,并输出f(x)的一阶导数和二阶导数。

②利用matplotlib库中的pyplot模块,绘制x在【10,10】取值区间上的f(x)函数、一阶导数和二阶导数的图形,要求:

(A)绘制三个子图,分别放置上述的三个图形。

(B)个子图区域,标题为Polynomial,使用红色实线绘制。

(C)第二个子图区域,标题为First Derivative,使用蓝色虚线绘制。

(D)第三个子图区域,标题为Second Derivative,使用绿色实心圆点绘制。

①读取文件python考试成绩和。

②使用merge(),以学号或姓名将两个文件合并,生成一个新的DataFrame对象st利用pandas计算DataFrame两列日期的间隔小时数udents。

③在将学生总评成绩按照由低到高进行排序,新增一列数据“排名”。

④根据姓名对成绩进行分组,输出男生、女生的平均成绩,和男女生的分。

⑤画出总评成绩的箱线图。

①分析文本“水浒.txt”,分词并统计有实质意义的词频(跟内容息息相关)。

②将《水浒》中的高频词制作成词云。

③分析每一章节的“喜怒哀乐”走向。

④分析水浒中36天罡的人物社交关系网络。

matlab已知两点的坐标和第三点到两点的距离求第三点坐标怎么编程求解?

你这每组数据相当于就是两个圆之间的关系,两个圆相交就有两个x,y。相切就一个x,y,不想交就没有解

syms x1 y1 x2 y2 x y s1 s2;

eq1 = (x-x1)^2+(y-y1)^2-s1s1;

eq2 = (x-x2)^2+(y-y2)^2-s2s2;

sol = solve(eq1,eq2,x,y);

x=simplify(sol.x);

y=simplify(sol.y);

x1=0,y1=16.2361,s1=7.7;

x2=8,y2=0,s2=11.8;

x=eval(x)

y=eval(y)

%输出:

% x =

% -0.1456

% 6.1933

% y =

% 8.5375

% 11.6609

clear;

clc;

%% 设置导入选项

opts = spreadsheetImportOptions("NumVariables", 2);

% 指定工作表和范围

opts.Sheet = "Sheet1";

opts.DataRange = "A2:B8"; % 选择取值范围

% 指定列名称和类型

opts.VariableNames = ["s1", "s2"];

opts.VariableTypes = ["double", "double"];

% 导入数据

%% 转换为输出类型

s1 = tbl.s1;

s2 = tbl.s2;

%% 清除临时变量

clear opts tbl

syms x1 x2 y1 y2;

X = [];

Y = [56];

x1 = 0;

y1 = 16.2361; %(x1,y1)不变

x2 = 8;

y2 = 0; %(x2,y2)不变

[m,n] = size(s1);

for i = 1:m

syms x y;

sx = s1(i);

sy = s2(i);

[x,y] = vpasolve((x-x1)^2+(y-y1)^2-(sx)^2,(x-x2)^2+(y-y2)^2-(sy)^2); %二元二次方程组

X = [X;x(1)];

X = [X;x(2)];

Y = [Y;y(1)];

Y = [Y;y(2)];

% 检查求得的坐标是否符合

S1 = (x(1)-x1)^2+(y(1)-y1)^2-(sx)^2

T1 = (x(1)-x2)^2+(y(1)-y2)^2-(sy)^2

if (S1 == 0.0 && T1 == 0.0)

disp('i=')

disp(i) %i 表示Excel中第i个要求的点

disp('次i对应点符合,(x,y)') % 第i个点的坐标

disp(x(1))

disp(y(1))

else

disp('不符合')

end

S2 = (x(2)-x1)^2+(y(2)-y1)^2-(sx)^2

if (S2 == 0.0 && T2 == 0.0)

disp('i=')

disp(i)

disp('此i对应T2 = (x(2)-x2)^2+(y(2)-y2)^2-(sy)^2点符合,(x,y)')

disp(x(2))

disp(y(2))

else

disp('不符合')

end

end

这叫距离交会,简单的说,就是俩圆的交会,圆的圆心已知,半径知道,相交的点是那点坐标,用解吸几何计算

A点为圆心半径N

B点为圆心半径M

求交点。

会有两个坐标。

limma包的使用

limmar package是一个功能比较全的包,既含有cDNA芯片的RAW data输入、前处理(归一化)功能,同时也有异化基因分析的“线性”算法(limma: Linear Models for Microarray Data),特别是对于“多因素实验(multifactor designed experiment)”。limmar包的可扩展性非常强,单通道(one channel)或者双通道(tow channel)数据都可以分析异基因,甚至也包括了定量PCR和RNA-seq(次见分析microarray的包也能处理RNA-seq)。

limmar package是一个集大成的包,对载入数据、数据前处理(背景矫正、组内归一化和组间归一化都有很多种选择方法)、异基因分析都有很多的选择。而且,所设计的线性回归和经验贝叶斯方法找异基因非常值得学习。

1. 读入样本信息

使用函数读readTargets(file="Targets.txt", path=NULL, sep="\t", row.names=NULL, quote=""",...)。这个函数其实是一个包装了的read.table(),读入的是样本的信息,创建的对象类似于 marray 包的marrayInfos和 Biobase 包的AnnotatedDataFrame。

2. 读入探针密度数据

与 marray 包一致,Bioconductor不能读入原始的TIFF图像文件,只能输出扫描仪输入的、转换成数字信号的文本文件。使用函数read.maimages(files=NULL, source="generic", path=NULL, ext=NULL, names=NULL, columns=NULL, other.columns=NULL, annotation=NULL, green.only=FALSE, wt.fun=NULL, verbose=TRUE, sep="\t", quote=NULL, ...)

参数说明 :files需要通过函数dir(pattern = "Mypattern")配合正则表达式筛选(规范命名很重要),同时该函数 可以读入符合格式的压缩过的文件,比如 .txt.gz的文件,这极大的减小的数据储存大小 ;source的取值分为两类,一类是“高富帅”,比如“agilent”、“spot”等等(下表),它们是 特定扫描仪器的特定输出格式 ;如果不幸是“丝”,即格式是自己规定的,可以选定source="generic",这时需要规定columns;任何cDNA文件都要有R/G/Rb/Gb四列(Mean或者Median);annotation可以规定哪些是注释列;wt.fun用于对点样点进行质量评估,取值为0表示这些点将在后续的分析中被剔除,取值位1表示需要保留,对点样点的评估依赖于图像扫描软件的程序设定,比如SPOT和GenePix软件,查看QualityWeights(现成函数或者自己写函数)。

读入单通道数据 :读入单通道数据,可以设定green.only =1. 安装python TRUE即可,然后对应读入columns = list(G = "Col1", Gb = "Col2")。

读入的数据,如果是单通道,则成为EListRaw class;如果是双通道,则是RGList class。

数据作:

cbind():合并数据;

“基本原理是,[”:分割数据;

RGList class有的names是 "R","G","Rb","Gb","weights","printer","genes","targets","notes": R/G/Rb/Gb分别红和绿的前景和背景噪音;weight是扫描软件的质量评估;printer是点样规则(printer layout);genes是基因注释;target是样本注释;notes是一般注释。可以通过myRGList$names进行相应的 取值和赋值 。

pandas 某一值的第几位

bomodel.fit(X_train,Y_train)ok_id=book_id.str[:1]。

_ook_id重新取值,取索书号列位字符。

_andas是基于Numpy构建的,pandas中很多的用法和numpy一致。pandas中又有series和DataFrame,Series是DataFrame的基础。

Python数据挖掘从哪些

pandas依赖的pip版本,是8.0.0。如果pip是8以下的版本,如7.2.1,需要升级pip.

一. 基于Python的数据挖掘 基本架构

1. matplotlib, 图形化

2. pandas,数据挖掘的关键, 提供各种挖掘分析的算法

3. numpy, 提供基本的统计

scipy, 提供各种数学公式

4. python common lib,python基本框架

二. 环境搭建

2. 安装pip

命令是“python -m pip install -U pip”,这是windows版本。

Linux是”pip install -U pip“

通过命令“pip --version”, 可以查看pip版本号

3. 安装pandas

命令“pip install pandas", 这是windows版本。

Linux平台可用

sudo apt-get install python-pandas

4. 安装matplotlib

pip install matplotlib

三. 数据类型

pypython common type

string list tuple dict set

6钟学列

list, tuple, string, unicode string, buffer object, xrange

pandas type

ndarray, series dateFrame

ndarray, 数组类型,新增原因:

list, tuple是基于指针+对象设计的。即list,tuple存储的是void指针,指针指向具体对象的数据。

因为是void指针,所以二者可以存储各种数据类型,即数据类型可以不统一。

虽然存储丰富,但如果数据量过大时,即处理大数据时,有弊端。

1. 存储空间大,浪费内存。因为存两部分,指针+数据

2. 读取慢,通过index,找到指针;基于指针,找到数据

所以在大数据处理时,新增ndarray,数字类型,类似C++ 数组。存储相同,读取、修改快捷。

别名:array, 有利于节省内存、提高CPU的计算时间,有丰富的处理函数

series,变长字典,

类似一维数组的对象;有数据和索引组成

新增原因:

dict是无序的,它的key和value存在映射关系。但key和value之间是不的,存储在一起。

如果需要对一项进行作,会影响到另外一项。所以有了series, series的key和value是的,存储。

series的key是定长有序的。通过series.key获取整个索引, 通过series.values获取所有values.

series的key,可以通过series.index.name,设置的名称。

series整体也可以设置名称,通过series.name

DataFrame:

1. 一个表格型的数据结构

2. 含有一组有序的列(类似于index)

3. 可以认为是,共享一个index的Series

data1={'name':['ja', 'c', 'python'], 'year': [2,2,3]}

frame = pd.DataFrame(data1)

------------------------------------------------

四. 基本的数据分析流程:

1. 数据的获取

2. 数据准备--规格化,建立各种索引index

3. 数据的显示、描述,用于调试

如df.index, df.values, df.head(n), df.tail(n) df.describe

4. 数据的选择

index获取, 切片获取, 行、列获取, 矩形区域获取

index获取,df.row1 或者 df['row1']

行列,df.loc[行list, 列list], 如df.loc[0:1,['co1','col2'] ]

通过二位索引,取二维左上角,df.iloc[0,0],也可以列表 df.iloc[0:2,0:2],取前2行。

5. 简单的统计与处理

统计平均值、值等

6. Grouping 分组

df.groupby(df.row1)

7. Merge合并

append追加,

contact连接, 包含append功能,也可以两个不同的二维数据结构合并

join连接, SQL连接,基于相同字段连接,如 sql的where, a.row1 = b.row1

------------------------------------------------

五. 高级的数据处理与可视化:

1. 聚类分析

聚类是数据挖掘描述性任务和预测性任务的一个重要组成部分,它以相似性为基础,

把相似的对象通过静态分类,分成不同的组别和子集。

在python中,有很多第三方库提供了聚类算法。

聚类算法有很多, 其中K-均值算法,因为其简单、快捷的特点,被广泛使用。

2. 使用均方,计算距离。使得每一个数据点都收敛在一个组内;各个组是完全隔离的

案例:

>>> from pylab import

>>> from scipy.cluster.vq import

>>>

>>> list1=[88,64,df=df['2016-02-2':'2016-02-10']96,85]

>>> list2=[92,99,95,94]

>>> list3=[,87,99,95]

>>> list4 = [78,99,97,81]

>>> list5=[88,78,98,84]

>>> list6=[100,95,100,92]

>>>

>>> tempdate

([88, 64, 96, 85], [92, 99, 95, 94], [, 87, 99, 95], [78, 99, 97, 81], [88, 78

, 98, 84], [100, 95, 100, 92])

>>> date = vstack(tempdate)

>>>

>>> date

array([[ 88, 64, 96, 85],

[ 92, 99, 95, 94],

[ , 87, 99, 95],

[ 78, 99, 97, 81],

[ 88, 78, 98, 84],

[100, 95, 100, 92]])

>>> centroids,abc=kmeans(date,2) #查找聚类中心,第二个参数是设置分N类,如5类,则为5

>>> centroids # 基于每列查找的中心点,可能是平均值

array([[88, 71, 97, 84],

[90, 95, 97, 90]])

>>>

>>> result,cde=vq(date,centroids) #对数据集,基于聚类中心进行分类

>>> result

array([0, 1, 1, 1, 0, 1])

2. 绘图基础

python描绘库,包含两部分,

绘图api, matplotlib提供各种描绘接口。

集成库,pylab(包含numpy和matplotlib中的常用方法),描绘更快捷、方便。

import numpy as np

import matplotlib.pyplot as plt

t = np.arange(0,10)

plt.plot(t, t+2)

plt.plot(t,t, 'o', t,t+2, t,t2, 'o') #(x,y)一组,默认是折线;‘o'是散点,

plt.bar(t,t2) # 柱状图

plt.show()

--------------------

import pylab as pl

t = np.arange(0,10)

plt.plot(t, t+2)

plt.show()

3. matplotlib图像属性控制

色彩、样式

名称: 图、横、纵轴,

plt.title('philip\'s python plot')

plt.xlabel('date')

plt.ylabel('value')

其他: pl.figure(figsize=(8,6),dpi=100)

pl.plot(x,y, color='red', linewidth=3, lable='line1')

pl.legend(loc='upper left')

子图

pl.subplot(211) # 整体,可以分为二维部分;

#个是图的行,第二个是列;第三个是index, 从左上开始0遍历 当前行,再下一行。

#如果是2位数,如11,需要‘,’

axes(left, bottom, width, height) # 参数取值范围是(0,1), left,是到左边的距离,bottom是到下面的距离

4. pandas作图

Series、DataFrame支持直接描绘,封装了调用matplotlib的接口,如

series.close.plot()

df.close.plot() #具体参数类似matplotlib普通接口

属性控制

类似matplotlib普通接口,修改各种的类型,柱形图、折线等

--------common-----------------

list, tuple, dict

--------numpy-----------------

ndarray, Series, DataFrame

简述树模型之决策树、随机森林、xgboost

tbl = readtable("C:\Users\pc\Desktop\data.xlsx", opts, "UseExcel", false); %选择文件(数据)路径

先介绍一下 损失函数 的概念,它被广泛用做构造树时调整树形和衡量模型性能的标准,主要涉及两个概念:1) 方(variance) :某一模型对不同测试集的预测结果波动程度;2) 偏(bias) :某次预测结果与实际数据的。总的来说,模型简单,偏大、方小,欠拟合;模型复杂,偏小、方大,过拟合。因此模型优化也是这样一个寻找平衡点的过程。

决策树是一种树状结构,它的每个叶节点对应一个分类,非叶节点对应在某个属性上的划分,根据样本在该属性上的不同取值划分成若干子集。构造决策树的核心问题是每一步对样本属性如何做拆分。对于一个分类问题,从已知数据做训练,生产决策树是一个自上而下的分治过程。

多棵决策树组成, 基于Bagging思想,有放回抽样。每轮结果之间相互,因此损失函数的方 coef std err z P>|z| [0.025 0.975]不对太大。

max_leaf_nodes 参数决定迭代次数,也就是树的深度,选取不当会导致模型过(欠)拟合,后果是虽然训练结果准确度很高,但 在实际部署时会发生意想不到的错误,这被称为数据泄露(data leakage)。二叉树并不是越深越好,太深会带来overfitting(过拟合)的问题,随机森林构造器的默认参数往往。

梯度提升决策树。专门处理表格型数据,如pd.DataFrame,基于Boosting。

下面是一些关键的参数:

GBDT每轮迭代数据都与上一轮结果有关,就信息元来说可以保证结果尽可能接近真实数据,偏不会很大,但联系紧密的数据拟合会使得方过大,因此需要浅一点的树来降低方。

而基于Bagging的随机森林,各分类相互,受不同输入数据的影响小,目标是如何提高准确度,因此采用很深甚至不剪枝的树群。

数据挖掘小白一枚,如有错误,恳请大家指正~

时间序列

1967-12-31

该序列具有明显的趋势性,所以不是通常的平稳序列

1989-12-31

比较奇怪的是,和书上的怎么不一样,而且acf不应该小于1?哪里算错了?我知道了,原来算法都是用:

算的,而不是:

结论就是,自相关图显示出明显的三角对称性, 这时具有单调趋势的非平稳序列的一种典型的自相关图形式.

跳过了

AR模型的自相关系数有俩个显著的性质: 1.拖尾性;2.指数衰减

滞后 阶的自相关系数的通解为:

其中 为分方程的特征根, 为常数,且不全为0

通过这个通解形式,容易推出 始终有非零取值,不会在 大于某个常数之后就恒等于零,这个性质就是拖尾性.

而以指数衰减的性质就是利用自相关图判断平稳序列时所说的"短期相关"性质.

AR(p)模型的偏自相关系数具有 阶截尾性,利用线性方程组的理论可以证明.事实上,这也是一种确定阶数的方法.另外偏自相关系数可以通过求解Yule-Walker方程获得:

是不是又哪里搞错了,和库里的又不一样了.

MA(q)模型自相关系数 阶截尾,即 阶以后自相关系数为0

MA(q)模型偏自相关系数拖尾

ARMA(p, q)模型自相关系数不截尾,而且偏自相关系数也不截尾

output
1964-12-3197.01965-12-31130.01966-12-31156.5135.21968-12-31137.71969-12-31180.51970-12-31205.21971-12-31190.01972-12-31188.61973-12-31196.71974-12-31180.31975-12-31210.81976-12-31196.01977-12-31223.01978-12-31238.21979-12-31263.51980-12-31292.61981-12-31317.01982-12-31335.41983-12-31327.01984-12-31321.91985-12-31353.51986-12-31397.81987-12-31436.81988-12-31465.7476.71990-12-31462.619-12-31460.81992-12-31501.81993-12-31501.51994-12-31489.51995-12-31542.31996-12-31512.21997-12-31559.81998-12-31542.01999-12-31567.0

分运算

就用个ARMA(1, 1, 4)吧

利用summary查看

ARIMA Model Results
Dep. Variable: D.output No. Observations: 35Model: ARIMA(0, 1, 4) Log Likelihood -156.722Mod: css-mle S.D. of innovations 20.534Date: Thu, 13 Jun 2019 AIC 325.444Time: 18:06:52 BIC 334.776Sample: 12-31-1965 HQIC 328.666 - 12-31-1999

const 13.9682 0.726 19.227 0.000 12.544 15.392ma.L1.D.output -0.3682 0.200 -1.840 0.076 -0.761 0.024ma.L2.D.output -0.1066 0.182 -0.585 0.563 -0.463 0.ma.L3.D.output -0.3034 0.196 -1.545 0.133 -0.688 0.081ma.L4.D.output -0.2218 0.176 -1.262 0.217 -0.566 0.123

Roots
Real Imaginary Modulus FrequencyMA.1 1.0000 -0.0000j 1.0000 -0.0000MA.2 -0.1585 -1.4742j 1.4827 -0.2670MA.3 -0.1585 +1.4742j 1.4827 0.2670MA.4 -2.0510 -0.0000j 2.0510 -0.5000

其中的ma.L1.D.output 表示模型的MA部分的个参数,因为我们的AR部分为0,如果存在的话也有ar.L1.D.output的

表示t检验,这里好像检验没通过,我也不知道咋怎.

大于0.05,所以模型是显著的

ggpubr绘制箱线图

ggboxplot(data, x, y, combine = FALSE,merge=FALSE, color ="black", fill ="white", palette =NULL, title =NULL, xlab =NULL, ylab =NULL, facet.by =NULL, panel.labs =NULL, short.panel.labs =TRUE, linetype ="solid",size=NULL, width =0.7, notch =FALSE,select=NULL, remove =NULL,order=NULL,add="none", add.params =list(),error.plot ="pointrange", label =NULL, font.label =list(size=11, color ="black"), label.select =NULL, repel =FALSE, label.rectangle =FALSE,ggtheme = theme_pubr(), ...)

data所需的数据框 dataframex

y进行作图所需的数据

combine对于多个变量的数据是否分面,默认是FALSE

merge对于多个变量的数据是否合并,默认是FALSE

color轮廓线的颜色

fill填充色

palette自定义颜色画板

title设置标题

xlab设置x轴标题

ylab设置y轴标题

orientation变换坐标轴的方向

facet.by设置分组分面

panel.labs设置分面各组的标题

short.panel.labs是否缩写分面标题,逻辑值,默认是TRUE

linetype线的类型

size设置点和轮廓线的大小

width设置柱子的宽度,取值范围 0~1

notch否添加缺口

select选择需要展示的变量

remove移除不需要展示的变量

order选定变量的排列顺序

add添加元素:"none", "dotplot", "jitter", "boxplot", "point", "mean", "mean_se", "mean_sd", "mean_ci", "mean_range", "median", "median_iqr", "median_mad", "median_range"

add.params给add参数中添加的元素添加属性:olor, shape, size, fill, linetypeeg:add.params = list(color = "red")error.plot添加误棒,选项有"pointrange", "linerange", "crosar", "errorbar", "upper_errorbar", "lower_errorbar", "upper_pointrange", "lower_pointrange", "upper_linerange", "lower_linerange"。默认是"pointrange" or "errorbar"

label设置列标签font.label设置标签字号(e.g.: 14)、类型(e.g.: "plain", "bold", "italic", "bold.ital1. 查找某数据集的中心,ic")、颜色(e.g.: "red")如:font.label = list(size = 14, face = "bold", color ="red")

repel逻辑值,是否使用ggrepel避免字体重叠

label.rectangle是否给标签添加方框ggtheme设置画图主题,默认是theme_pubr()。ggplot2 official themes: theme_gray(), theme_bw(), theme_minimal(), theme_classic(), theme_void()

r语言将数据转化为01变量

print(df_189_7.())

我们只能手动将factorvariable转换为取值(0,1)的虚拟变量。所用的函数一般有model.matrix(),nnetpackage中的class.ind()。

最简单的方法,数据框的名称,加上你要提取的列数,示例如下:需要注意的是,如果只提取单列的话,得到的数axis:取值范围:{0或’index’,1或’columns’}(可选),是指轴截断。 默认情况截断索引(行)。据就变成了一个vector,而不再是dataframe的格式了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息