鱼C论坛

 找回密码
 立即注册
查看: 1637|回复: 14

[已解决]pandas处理excel

[复制链接]
发表于 2020-9-6 09:39:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请教下各位大佬,怎么根据excel列名,从DataFrame取到从第一列到某一列所有数据?比如,列名为,【序号,姓名,年龄,班级,分数】。我想取到序号到年龄所有列,(别用数字索引 0-2,因为每次顺序不一样,要用汉字)
最佳答案
2020-9-6 10:42:43
カカロット 发表于 2020-9-6 10:40
您帮我看下?我不知道哪里错了。。
import pandas as pd
路径=r'C:%users\Administrator\Desktop\321. ...


我一开始写错了,后来改了,你仔细看六楼的图片,把中括号里面的中括号去掉,范围选择不需要中括号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-6 09:54:00 | 显示全部楼层
直接df[["序号","姓名","年龄"]]就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 09:55:30 | 显示全部楼层
直接用
df[["序号","姓名","年龄"]]
就可以的了。
DataFrame对象的索引,在[],里放入一个列表对列进行索引,在df.loc[]放进一个列表对行进行索引
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 10:15:39 | 显示全部楼层
df.loc[:,['序号','姓名','年龄']]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 10:28:27 | 显示全部楼层


大佬我是想要比如:‘序号’到‘年龄’这样的形式,不知道可有方法?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 10:30:41 | 显示全部楼层
本帖最后由 疾风怪盗 于 2020-9-6 10:35 编辑
カカロット 发表于 2020-9-6 10:28
大佬我是想要比如:‘序号’到‘年龄’这样的形式,不知道可有方法?


df.loc[:,'序号':'年龄']
批注 2020-09-06 103537.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 10:37:47 | 显示全部楼层
疾风怪盗 发表于 2020-9-6 10:30
df.loc[:,'序号':'年龄']

我这样写完后,提示invalid syntax。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 10:40:38 | 显示全部楼层
疾风怪盗 发表于 2020-9-6 10:30
df.loc[:,'序号':'年龄']

您帮我看下?我不知道哪里错了。。
import pandas as pd
路径=r'C:\Users\Administrator\Desktop\321.xlsx'
数据=pd.read_excel(路径)
新表=pd.DataFrame(数据)

p1=新表.loc[:,['姓名':'部门全称']] #提取部门全称前面的所有列
print(p1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 10:41:23 | 显示全部楼层
カカロット 发表于 2020-9-6 10:37
我这样写完后,提示invalid syntax。。。

你看我六楼贴的图片,应该不会报错,就是这么写的,你把代码贴上来,报错提示贴上来看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 10:42:43 | 显示全部楼层    本楼为最佳答案   
カカロット 发表于 2020-9-6 10:40
您帮我看下?我不知道哪里错了。。
import pandas as pd
路径=r'C:%users\Administrator\Desktop\321. ...


我一开始写错了,后来改了,你仔细看六楼的图片,把中括号里面的中括号去掉,范围选择不需要中括号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 10:46:16 | 显示全部楼层
疾风怪盗 发表于 2020-9-6 10:42
我一开始写错了,后来改了,你仔细看六楼的图片,把中括号里面的中括号去掉,范围选择不需要中括号

哇确实确实好用啦嘿嘿嘿谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 10:48:25 | 显示全部楼层
本帖最后由 カカロット 于 2020-9-6 10:49 编辑
疾风怪盗 发表于 2020-9-6 10:42
我一开始写错了,后来改了,你仔细看六楼的图片,把中括号里面的中括号去掉,范围选择不需要中括号


对了大佬还想请教下,比如你的图片,给的范围是A到C,假设这中间有好多列,我想去第一列到C前面一列的数据,应该怎么写呢? 或者说姓名前面一列?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 10:58:05 | 显示全部楼层
カカロット 发表于 2020-9-6 10:48
对了大佬还想请教下,比如你的图片,给的范围是A到C,假设这中间有好多列,我想去第一列到C前面一列的 ...

没明白你的意思?
loc取值就直接写列名就可以了,范围就用:取值,单个的就用[]取值
你要是要取到姓名前一列,如果这个列是按顺序的,那你就用iloc,可以使用索引数字
import numpy as np
import pandas as pd
#创建一个Dataframe
data=pd.DataFrame(np.arange(36).reshape(6,6),index=list('abcdef'),columns=list('ABCDEF'))
print(data)
data=data.iloc[:,2:5]
print(data)
你这个代码运行看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 11:02:22 | 显示全部楼层
疾风怪盗 发表于 2020-9-6 10:58
没明白你的意思?
loc取值就直接写列名就可以了,范围就用:取值,单个的就用[]取值
你要是要取到姓名前 ...

dex=新表.columns.get_loc('部门全称') #获取某一列索引
# print(dex)
p1=新表.iloc[:,:dex] #提取部门全称前面的所有列

如此成功的谢谢啦大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 11:04:44 | 显示全部楼层
カカロット 发表于 2020-9-6 11:02
dex=新表.columns.get_loc('部门全称') #获取某一列索引
# print(dex)
p1=新表.iloc[:,:dex] #提取部门 ...

还有这个获取索引的方法,都不知道,学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 20:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表