pandas向左移动非空单元格
- 碰到个小问题, 因为需要更改excel 的行为。
处理最多的还是excel的事, 不过看起来是excel。实际上对pandas 的库的熟悉。读取,更改,应用等等,方法。
十分有用。
先说需求,本来的表格形式为:
需要变成:
网上找了篇链接,移动非空单元格的。
思路:
1 把所有零都变成null 值
2 套用文章中的函数
最后完美达成。
写习惯了。其实,这个很简单,不用分这么细。 不过编程思维,将模块分解,成一个小单元去组合。
尽量细分到了每个模块做什么事,合起来。
一个函数内部精密度高,可塑性强。但是可以到处复用。
算法明显就是如此。
低耦合,高内聚。
# _*_coding:utf-8 _*_
import pandas as pd
import numpy as np class baixi: # 初始化
def __init__(self):
self.pd = pd
self.deal_data = pd.read_excel(r'C:\Users\daojia\Desktop\学习\work\Sample.xlsx', sheet_name='CQL') # 转置过程,将null 值全部删除,重建。很值得学习
@staticmethod
def squeeze_nan(x):
original_columns = x.index.tolist() squeezed = x.dropna()
squeezed.index = [original_columns[n] for n in range(squeezed.count())] return squeezed.reindex(original_columns, fill_value=np.nan) # 重新获取数据
def get_lc_data(self):
# 获取数据
data = self.deal_data
data[data.__eq__(0)] = np.nan
# 调用函数左移数据
out_data = data.apply(self.squeeze_nan, axis=1)
# 保存数据
print(data)
out_data.to_excel(r'C:\Users\daojia\Desktop\学习\Sample123.xlsx') # return out_data if __name__ == '__main__':
baixi().get_lc_data()
a = 1
pandas向左移动非空单元格的更多相关文章
- EXCEL小技巧:如何统计非空单元格
http://club.excelhome.net/thread-1187271-1-1.html 下面教大家如果用函数统计非空单元格的数量 首先我们来介绍几个统计函数: 1.COUNT(value1 ...
- Excel表格中无法中间插入新行列! 提示:在当前工作表的最后一行或列中,存在非空单元格,解决方案
excel中新增行列时报错: 提示:在当前工作表的最后一行或列中,存在非空单元格,所以无法插入新行或新列.
- DEV中右键菜单如何只在非空单元格上显示?
问题: 1. 开发时,我的winform程序中有很多gridview,我希望右键菜单只在我点击非空的行时才显示,点击其他空白区域时不显示: 2. 有一个树状导航图,treelist 中的节点都有右键菜 ...
- Excel 如何统计非空非零单元格的个数
使用 Excel 统计非空非零单元格的个数: ——使用函数 :=COUNTIFS($B$2:$B$194440,"<>",$B$2:$B$194440,"&l ...
- POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解
http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...
- Qt tableWidget 空单元格 获取选中行行号
bool focus = tableWidget->isItemSelected(tableWidget->currentItem()); // 判断是否选中一行 Int row1 = t ...
- excel 去掉 空单元格
Excel 2003 选中这一列,定位(CTRL+G)--定位条件--空值--确定--右键--删除. 1. 然后进行全选已输入的内容,可以使用鼠标拖动已输入的内容,也可以使用快捷键全选内容,按住ctr ...
- poi 处理空单元格
http://poi.apache.org/spreadsheet/quick-guide.html 用google翻译 找到
- excel 用VBA将所有单元格内容全部转换为文本
Sub 将所有列全部转换为文本() t=timer 'Cells(Rows.Count, 1).End(xlUp).Row 获取第一列最后一个非空单元格的行号 s = Cells(, Columns. ...
随机推荐
- POJ-2287.Tian Ji -- The Horse Racing (贪心)
Tian Ji -- The Horse Racing Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 17662 Acc ...
- Consul集群Server模式
Consul集群Server模式 架构示意图 Consul在生产环境下运行模式分为两种:Server模式和Client模式(dev模式属于开发模式不在这里讨论),我们先用Server模式搭建一个Con ...
- 分布式唯一ID生成器
在应用程序中,经常需要全局唯一的ID作为数据库主键.如何生成全局唯一ID? 首先,需要确定全局唯一ID是整型还是字符串?如果是字符串,那么现有的UUID就完全满足需求,不需要额外的工作.缺点是字符串作 ...
- 谷歌浏览器安装插件时出现:程序包无效:“CRX_HEADER_INVALID" 后的解决办法
以安装书签管理插件Neater Bookmarks为例: 1.下载:网址http://www.cnplugins.com/zhuanti/sixbookmarksintroduce.html 2.将下 ...
- http请求中的Content-Length作用机制与分块chunked
httpclient-4.5.9.jar org.apache.http: auth 身份 client 端 conn 连接 cookie 本地 impl: 实现 exe ...
- 211-基于FMC的ADC-DAC子卡
基于FMC的ADC-DAC子卡 一.板卡概述 FMC-1AD-1DA-1SYNC是我司自主研发的一款1路1G AD采集.1路2.5G DA回放的FMC.1路AD同步信号子卡.板卡采用标准FMC子卡架构 ...
- ubuntu14彻底删除mysql!!!(精)
解决方法: 删除mysql前 先删除一下 /var/lib/mysql 还有 /etc/mysql sudo rm /var/lib/mysql/ -R sudo rm /etc/mysql/ -R ...
- break语句、continue语句、goto语句的用法辨析
1.break语句 break语句常使用在switch语句.循环体以及if语句中,它的作用是跳出循环,而且只能跳出一层循环. for (i = 0; i < 10; ++j) { for (j ...
- OGG replicat复制进程的拆分
参考资料: 1.https://blog.csdn.net/datingting1/article/details/79583690
- 基于 Ansible 的 ELK 部署说明
ELK-Ansible使用手册 ELK-Ansible 是基于 Ansible 的 Playbooks 研发的 ELK集群部署工具.本文将介绍如何使用 ELK-Ansible 快速部署 ELK 集群. ...