『R语言&Python』 Excel文件的读取以及DataFrame的相关操作 (1)

文中使用到的数据:

time = [1,2,3,4,5,6,7,8,9 ]
x = [19.47, 27.41, 27.92, 33.79, 38.00, 40.36, 51.70, 62.15, 78.58]
result = [0.759, 0.844, 0.868, 0.992, 1.092, 1.074, 1.099, 1.243, 1.342]

Python部分

一、读取Excel

提到读取数据,就不得不说 p a n d a s pandas pandas 这个库了,它可以读取的文件格式如图;对 E x c e l Excel Excel 表格进行数据分析时,常使用 read_csv 或者 read_excel
Varian

首先把 C:\Users\acer\Desktop\data analysis\Playing.xlsx 文件地址赋值给 filepath,然后使用 pd.read_excel( ) 方法读取该文件,注意参数 sheet_name=1 意味着读取文件中的第二个表格 S h e e t 2 Sheet2 Sheet2

在这里插入图片描述

import pandas as pd
filepath = r'C:\Users\acer\Desktop\data analysis\Playing.xlsx'  
df = pd.read_excel(filepath,sheet_name=1)  

读取出来的 d f df df 是一个数据框(即类型为 D a t a F r a m e DataFrame DataFrame
在这里插入图片描述

二、删除df中不需要的列

注意到进行数据分析或者建模时,可能不需要用到 “ t i m e ” “time” time 这一列数据,所以利用 d r o p drop drop 方法(注意参数添加 a x i s = 1 axis=1 axis=1 ,表示对列进行操作)删除 d f df df 中的 “ t i m e ” “time” time

df = df.drop(['time'], axis = 1)  
print(df) 

在这里插入图片描述

若要同时删除多列,往中括号内继续添加要删除的列即可

# 举例:若df中有a、b、c列,删除df中的a、b、c列
df = df.drop(['a','b','c'], axis = 1)

三、列的重命名

除此之外,强迫症患者还可以把列名 “ r e s u l t ” “result” result 改成 “ y ” “y” y 便于建模时对变量的识别。

df['y'] = df['result']  #先把result列的值赋值给要新建的列备份
df = df.drop(['result'], axis = 1)   #然后删除result列
print(df) 

在这里插入图片描述

四、数据的使用

然后可以按照自己的建模需要,把相应的列提取出来转成 n p np np 对象,用于建模。注意“0”代表第1列、以此类推

import numpy as np  
x = df.iloc[:,0]   #第一列命名为x
x = x.to_numpy()  
y = df.iloc[:,1]   #第二列命名为y
y = y.to_numpy() 

在这里插入图片描述

R R R

一、读取 E x c e l Excel Excel

R语言一般使用 x l s x xlsx xlsx 包 读取 E x c e l Excel Excel,但是参数的设置与 p y t h o n python python 相比有所不同,如指定读取表格的参数
在这里插入图片描述
在这里插入图片描述

> library(xlsx)
> data = read.xlsx("C:/Users/acer/Desktop/data analysis/Playing.xlsx",2)
> print(data)

在这里插入图片描述

二、删除df中不需要的列

" t i m e " "time" "time" 这一列删去,注意与 p y t h o n python python 的区别——这里-1指的是删去第一列
在这里插入图片描述
删除多列:
在这里插入图片描述

data = data[, -1]
print(data)
#### 
data = data[,c(-1,-2)]
print(data)

删除指定(多)列:

注意:方式一、三删除列后若只剩余1列,类型仍为 d a t a . f r a m e data.frame data.frame,而方式二类型发生改变

方式一:使用 subset(数据框名字,select = -c(要删除的列1,... )) 方法。推荐使用
在这里插入图片描述

> data = subset(data, select = -c(time, result))
> data

方式二:构造一个布尔向量,结合 %in% 和这个向量来删除不需要的列。
首先要介绍下 names() 方法,用于 d a t a f r a m e dataframe dataframe 时的作用与 colnames() 方法一致;
在这里插入图片描述
然后 %in% 可以判断向量 a a a 内元素是否在 b b b 中,是则返回 t r u e true true,否则 f a l s e false false
在这里插入图片描述
这时我们加上一个 ! ,就能使我们想删除的列在向量中对应的位置变成 F a l s e False False,把该向量命名为 d e l del del
在这里插入图片描述
最后把这个向量放入 d a t a data data 中,实现删除指定多列:
在这里插入图片描述
注意这时 d a t a data data d a t a . f r a m e data.frame data.frame 类型变成了 n u m e r i c numeric numeric 类型

> names(data)
> names(data) %in% c('time','result')
> colnames(data) %in% c('time', 'result')
> del = !names(data) %in% c('time', 'result')
> print(del)
> data = data[, del]
> print(data)
> class(data)

方式三:使用 dplyr 包中的 select(数据框名字, -c(要删除的列1, ...)) 方法进行删除
在这里插入图片描述

> install.packages('dplyr')
> library(dplyr)
> data = dplyr::select(data, -c(time, result))
> print(data)

三、列的重命名

重命名前,先使用方法 c o l n a m e s ( ) colnames() colnames() 查看目前 d f df df 中的所有列名
在这里插入图片描述
方式一:直接把向量赋值给 c o l n a m e s ( ) colnames() colnames() 方法实现重命名
在这里插入图片描述
方式二:安装 plyr 包,使用它的 rename 方法实现重命名。较为便利(推荐),当列名总数量多且要重命名的列也多时,该方式比方式一快很多
在这里插入图片描述

print(colnames(data))  
# 方式一
colnames(data) = c('x','y')
print(data)
# 方式二
install.packages('plyr')
data = plyr::rename(data, c('result'='y'))

四、数据的使用

该步骤中 R R R 相对于 p y t h o n python python 会简单些,不需要转化成 n u m p y numpy numpy 数组,直接在 d f df df中使用 $ 引用即可
在这里插入图片描述

————————————————————————————————————————————————————
感谢观看,不足之处敬请指教

Guess you like

Origin blog.csdn.net/m0_47149835/article/details/116105886