我用pandas使用pd.read_excel将xls文件读入

Python

我正在努力清理我的数据,但我已经离开了我的联盟.

每条记录之间都有一个空行.在示例pic中,它优于第4,9和11行.

有一个注释列,在示例中指定(请参阅链接)为“col_F”.每条记录至少有一个包含文本的单元格.创建此xls文件的人将更长的注释拆分为多个单元格.

我想将col_F中用于特定记录的所有数据连接到一个单元格中.

一旦我弄清楚如何正确连接col_F,我也会删除空白记录.

我使用的是Python 3.5.0版本,numpy 1.12.0和pandas 0.19.2

这是我到目前为止:

import numpy as np

import pandas as pd

data = pd.read_excel("C:/blah/blahblah/file.xls", header=0, nrows=10000)

df = pd.DataFrame(data)

我感谢任何建议或见解!!

谢谢!

原始数据的外观如何:

更新:

这是我加载到Python时数据的外观

这就是我期望的结果:

最佳答案 这是我在@Boud在评论中解释的原始解决方案.我首先在这里创建示例数据:

df = pd.DataFrame([

['record1', '10', 'date1', 'optional', 'comment'],

['', '', '', '', 'comment continued'],

['', '', '', '', ''],

['record2', '100', 'date2', '', 'comment'],

['', '', '', '', 'comment continued'],

['', '', '', '', 'comment continued'],

['', '', '', '', 'comment continued'],

['', '', '', '', ''],

['record3', '10000', 'date3', '', 'comment']],

columns=['col_A', 'col_B', 'col_C', 'col_D', 'col_F'])

df.replace('', np.nan, regex=True, inplace=True)

请注意,此处的空白应填充NaN而不是空格.基本上,首先,您可以使用dropna删除不首先使用的行.

df.dropna(axis=0, how='all', inplace=True) # drop NaN by row

然后,您可以通过以前的记录填写col_A.

new_col = []

row_name = ''

for r in df.col_A:

if not pd.isnull(r):

row_name = r

new_col.append(row_name)

df.col_A = new_col

之后,您可以通过将groupby函数应用于A列来对其他列进行分组,并通过连接字符串来聚合其他列,如下所示.

gr = df.groupby('col_A')

def join_str(x):

x = list(map(str, x))

x = [e for e in x if str(e) != 'nan']

return ' '.join(x)

gr.agg({'col_B' : join_str,

'col_C': join_str,

'col_D': join_str,

'col_F': join_str}).reset_index()

python快速整理excel_使用pandas包用python清理excel数据相关推荐

  1. python快速整理excel_一行一行整理EXCEL表太麻烦,试试python脚本,1秒写入数据

    最近工作中,要整理数据,本来是以sql脚本录入,但是id.barcode等数据不好整理,因为这几个字段要唯一. 所以想到用EXCEL表整理数据,再导入数据库中. 整理的过程中,发现EXCEL一行一行的 ...

  2. python软件怎么使用-Python快速入门—如何选择使用包管理工具?

    原标题:Python快速入门-如何选择使用包管理工具? 源 | cnblogs文 | 包子 在Python环境中已经有很多成熟的包,可以通过安装这些包来扩展我们的程序. 例如,很多时候Python开发 ...

  3. python快速开发框架_GitHub - lee2029/pyui4win: 一个用python实现业务逻辑、用xml和html/css/js描述界面的windows程序的快速开发框架...

    pyui4win 一个用python实现业务逻辑.用xml和html/css/js描述界面的windows程序的快速开发框架 应用框架 1.pyui4win根据xml/html/js/css创建界面 ...

  4. python词云需要导入什么包_[python] 词云:wordcloud包的安装、使用、原理(源码分析)、中文词云生成、代码重写...

    词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.常见于博客. ...

  5. python快速编程入门课后程序题答案-Python编程从零基础到项目实战 完整PPT+习题答案...

    Python编程从零基础到项目实战是一本介绍Python相关知识的Python基础教程,内容涉及算法.Python数据分析.图形处理.Web开发.科学计算.项目管理.人工智能.Python爬虫等.其中 ...

  6. 利用Python获取某游戏网站热销商品并用pands进行Excel数据存储

            因为要求,这个不知名的网站用S代替了. 有刚刚使用S的用户,不知道玩什么游戏怎么办?往往热销商品会使他们最合适的选择. 当然,某个第三方的网站上面的数据会更详细,什么游戏用户活跃度高, ...

  7. 【Python学习】 - 如何将Pandas包中的groupby分组类型转换成DataFrame(一步就足够了)

    输入:df_Grp,类型是pandas.core.groupby.generic.DataFrameGroupBy 我们先来学习一下如何将分组后的其中一个分组给转换成DataFrame类型: tmp ...

  8. 【Python】一篇文章学习Pandas包 Pandas Series、DataFrame 对比学习

    一.Series与python字典对比 Series兼并了数组和字典的功能,既可以看作是一种特殊的字典,又可以看成是通用的Numpy数组.既可以支持数组的切片操作等,还可以运用字典获取values的方 ...

  9. python快速整理文件_Python实现自动整理文件

    工作上的文档和资料好几个月没整理了,因为平常太忙都是随手往桌面丢.整个桌面杂乱无章全是文档和资料.几乎快占满整个屏幕了,所有我必须要整理一下了.但是手动整理太费时间了,于是我想到了python.直接上 ...

最新文章

  1. 深度学习先驱 Yann LeCun 被骂到封推!AI 偏见真该甩锅数据集?
  2. Vue 中定义方法页面上使用
  3. java 中 的 =,java 中的 |=、=、^=
  4. lisp提取长方形坐标_语义SLAM | 深度学习用于特征提取 : SuperPoint(一)
  5. MATLAB保存数据为dat格式,[转载] Matlab中的数据以.txt或.dat格式保存
  6. 20款最优秀的JavaScript编辑器
  7. 常用的NoSQL数据库
  8. OpenCv学习篇——图像中值滤波算法
  9. Tableau学习摘录总结①(层次、聚合度和颗粒度层次、聚合度和颗粒度,字段(离散和连续),小建议)
  10. Bugku之秋名山老司机
  11. 小学计算机四年级教学计划,小学信息技术四年级第二学期教学计划
  12. [css] css 3d 动画,跟随鼠标移动做球形旋转
  13. 计算机正确坐姿,[图文]办公室必知:电脑族正确坐姿细解
  14. penGL入门学习(六)
  15. Fanvas将旧网站的swf动画转为canvas,以解决移动端swf动画无法显示问题
  16. 粒子群算法的寻优算法-非线性函数极值寻优
  17. 惠普 HPE D380 G9 做raid1+0并安装ESXI6.7
  18. Edge 联动 VsCode,这功能爱了
  19. 信号处理中的低通、高通、带通、带阻滤波器
  20. python中迭代是什么意思_Python中的“迭代”详解

热门文章

  1. sql的error如何查看是什么故障_什么是420mA控制回路?常见故障如何排查?
  2. wince工业平板电脑_如何防止工业平板电脑温度过高?
  3. 彩云小译怎么翻译网页_谷歌、百度、有道做不到的,统统交给这5款翻译工具!...
  4. Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境
  5. 推荐一位BAT数据大神!(附联系方式)
  6. python 类装饰器和函数装饰器区别_python进阶之装饰器之4在类中定义装饰器,将装饰器定义为类,两者的区别与联系...
  7. qimage加载bmp图片_批量修改图片大小,我发现了最简单的方法!
  8. 贝叶斯规则(Bayes’ rule)
  9. transient-java 关键字
  10. 组件 DataList 和 ObjectDataSource