找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 461|回复: 10

[求助] 一个对excel的简单判断及操作方法请教

1

主题

5

帖子

5

积分

贫民

积分
5
pharaoh21c 发表于 2018-3-29 13:13:43 | 显示全部楼层 |阅读模式
本帖最后由 pharaoh21c 于 2018-3-29 19:19 编辑

各位老师,无耻小白想求教一个对excel操作的简单问题,我需要对附件excel进行如下操作:1. 对"FCT"这一列中数字>20的行,将"In"和"Out"列加总至"Total"单元格
2. 对"FCT"这一列中数字<=20的行, "Total"单元格赋值"0"
特殊点(关键):
1. "FCT"等所有列位置都不固定(即可能这次为B列,下次表格被人改了变成C列D列了等等),因此首先需要判断"BJ"在哪一列;
2. 行数不固定(根据"Name"列来判断),如果使用循环函数的话,需要自动判断循环的次数

本人只会VBA,刚学习Python,恳请大师们帮忙贴一段Python代码让我学习一下(真实的数据和计算都要复杂很多,附件只是超级简化版)。

如果需要用到库,还请告知需要的库的名称。小白可能描述的不清楚还请包涵。

万分感谢!



Test_Func.xlsx

9.16 KB, 下载次数: 5

回复

使用道具 举报

0

主题

287

帖子

287

积分

侠客

积分
287
sheeboard 发表于 2018-3-29 20:20:17 | 显示全部楼层
这个可以看看to_excel这个功能的参数说明,不过也有其他解决方案,具体看要达到什么效果,上stackoverflow去查查,高手更多。
回复 支持 1 反对 0

使用道具 举报

0

主题

287

帖子

287

积分

侠客

积分
287
sheeboard 发表于 2018-3-29 17:50:03 | 显示全部楼层
改一下最后一句
df['Total']=np.where(df.FCT>20,df.loc[:,['In','Out']].sum(axis=1),0)
回复 支持 1 反对 0

使用道具 举报

0

主题

287

帖子

287

积分

侠客

积分
287
sheeboard 发表于 2018-3-29 17:45:36 | 显示全部楼层
import pandas as pd
import numpy as np
df=df.read_excel('Test_func.xlsx')
df['Total']=np.where(df.FCT>20,df.loc[:,'In':'Out'].sum(axis=1),0)

读取xlsx文件时最好顶格,不然要加一堆参数,具体做法看read_excel,pandas是根据列名操作的,不用A,B,C,D的序列。
Screenshot from 2018-03-29 17-41-10.png
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
pharaoh21c  楼主| 发表于 2018-3-29 19:24:26 | 显示全部楼层
多谢指教!
我网上也查了pandas和numpy但还是不太懂,所以只好厚着脸皮再问一句:
这段程序完成后是将计算结果又输入到excel文件里的“Total”列了吗?因为我做完很多计算以后还需要将表格发给其他同事看和分析……
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
pharaoh21c  楼主| 发表于 2018-3-29 19:27:57 | 显示全部楼层
sheeboard 发表于 2018-3-29 17:45
import pandas as pd
import numpy as np
df=df.read_excel('Test_func.xlsx')

多谢指教!
我网上也查了pandas和numpy但还是不太懂,所以只好厚着脸皮再问一句:
这段程序完成后是将计算结果又输入到excel文件里的“Total”列了吗?因为我做完很多计算以后还需要将表格发给其他同事看和分析……
回复 支持 反对

使用道具 举报

0

主题

287

帖子

287

积分

侠客

积分
287
sheeboard 发表于 2018-3-29 20:00:03 | 显示全部楼层

df.to_excel('new.xlsx')把dataframe保存成excel文件就可以了。
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
pharaoh21c  楼主| 发表于 2018-3-29 20:05:17 | 显示全部楼层
sheeboard 发表于 2018-3-29 20:00

df.to_excel('new.xlsx')把dataframe保存成excel文件就可以了。

多谢多谢!我原表格大约有3000行,200多列,比这个范例要复杂不少,输出项也有很多,到时怎么在输出的表格里排好版,我在您给的解答上再好好琢磨琢磨。
辛苦了,非常感谢!
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
pharaoh21c  楼主| 发表于 2018-3-29 20:26:24 | 显示全部楼层
sheeboard 发表于 2018-3-29 20:20
这个可以看看to_excel这个功能的参数说明,不过也有其他解决方案,具体看要达到什么效果,上stackoverflow ...

嗯嗯,谢谢!!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
蓝桥玄霜 发表于 2018-5-2 11:22:12 | 显示全部楼层
sheeboard 发表于 2018-3-29 17:45
import pandas as pd
import numpy as np
df=df.read_excel('Test_func.xlsx')

df=df.read_excel('Test_func.xlsx')
应该是:
df=pd.read_excel('Test_func.xlsx')
回复 支持 反对

使用道具 举报

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

本版积分规则

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