Tag: pandas

pandas python中string的精确匹配

我有一个数据框中的列,其中前df: A 0 Good to 1. Good communication EI : tathagata.kar@ae.com 1 SAP ECC Project System EI: ram.vaddadi@ae.com 2 EI : ravikumar.swarna Role:SSE Minimum Skill 我有一个string列表 ls=['tathagata.kar@ae.com','a.kar@ae.com'] 现在,如果我想过滤掉 for i in range(len(ls)): df1=df[df['A'].str.contains(ls[i]) if len(df1.columns!=0): print ls[i] 我得到输出 tathagata.kar@ae.com a.kar@ae.com 但我只需要tathagata.kar@ae.com 如何实现? 正如你可以看到我已经尝试str.contains但我需要一些extact匹配

Xslxwriter列图表数据标签百分比属性不起作用

我在Excel(2016)中创build了一些柱状图,用python(3.5.3)pandas(0.20.1)创build表格,并用xlsxwriter(0.9.6)创build表格和图表。 我想用相对于所有值的总和的值的百分比来标记每个列,如在这个图像中: Desired Output Chart 基于我对Xslxwriter文档的理解,我只需要在向图表添加一个系列时包含'data_labels':{'percentage': True}属性,就像我在下面的代码中所做的那样: df = pandas.DataFrame(data=[1,2,3,4,5],index=['a','b','c','d','e']) writer = pandas.ExcelWriter('C:/Users/Name_A_Place/sandbox.xlsx') df.to_excel(writer) wrkbk = writer.book wrksht = writer.sheets['Sheet1'] chrt = wrkbk.add_chart({'type':'column'}) chrt.add_series({'categories': '=Sheet1!A2:A6', 'values': '=Sheet1!B2:B6', 'data_labels': {'percentage':True, 'font': {'rotation':-45}}, }) wrksht.insert_chart("E1",chrt) writer.save() 但是,此代码将创build一个没有标签的图表: 实际输出图表 。 我误解百分比数据标签属性的工作原理吗? 我一直在解决这个问题,通过创build一个单独的百分比列,并使用该列'data_labels': {'value': True}标记'data_labels': {'value': True}属性,但是如果有人能够解释为什么我的代码不会产生输出I希望,我将不胜感激。

pandas合并列另一列

我有两个excel,命名为df1和df2 。 df1.columns: url, content, ortheryy df2.columns: url, content, othterxx df1中的一些内容是空的,df1和df2共享一些url(不是全部)。 我想要做的是填充df1的空白内容由df2,如果该行具有相同的url。 我试过了 ndf = pd.merge(df1, df2[['url', 'content']], on='url', how='left') # how='inner' result same 结果是: 两列:content_x和content_y 我知道它可以通过循环通过df1和df2来解决,但我想要做的是以pandas的方式。

获取按索引定位的嵌套字典中的键和值的列表

我有一个像这样的结构的Excel文件: name age status anna 35 single petr 27 married 我已经把这样的文件转换成一个嵌套的字典,像这样的结构: {'anna': {'age':35}, {'status': 'single'}}, {'petr': {'age':27}, {'status': 'married'}} 使用pandas: import pandas as pd df = pd.read_excel('path/to/file') df.set_index('name', inplace=True) print(df.to_dict(orient='index')) 但是现在当运行list(df.keys())它会返回字典中所有键(“年龄”,“状态”等)的列表,但不包含“名称”。 我最终的目标是通过input一个名字来返回所有的键和值。 有没有可能? 或者,也许我应该使用其他方式导入数据,以实现目标? 最后我应该来找一本字典,因为我会用一把钥匙把它和其他字典合并起来。

附加数据框,以大pandas

我希望将数据框追加到excel中 这个代码几乎像愿望一样工作。 虽然每次都不附加。 我运行它,它把数据框架在Excel中。 但是每次运行它都不会追加。 我也听说openpyxl是cpu密集型的,但没有听说过很多解决方法 。 import pandas from openpyxl import load_workbook book = load_workbook('C:\\OCC.xlsx') writer = pandas.ExcelWriter('C:\\OCC.xlsx', engine='openpyxl') writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) df1.to_excel(writer, index = False) writer.save() 我希望每次运行数据时都要附加数据,这不会发生。 数据输出看起来像原始数据: ABC HHH 我想在第二次运行后 ABC HHH HHH 道歉,如果这是显而易见的,我新来的python和我练习的例子没有按要求工作。 问题是 – 每次运行我怎样才能追加数据。 我尝试更改为xlsxwriter但获取AttributeError: 'Workbook' object has no attribute 'add_format'

使用StyleFrame从大pandas到Excel:如何禁用包装文本&缩小以适合?

我使用StyleFrame从pandas导出到Excel。 单元格格式化为“包装文本”和“缩小到适合”默认情况下。 (如何)可以更改这些设置? API文档描述了utils模块包含最广泛使用的样式元素值,并且只要Excel能够识别,就可以直接使用utils模块中不存在的值。 在这种情况下,我需要为Excel指定什么? 我如何/在哪里可以找出Excel的期望? 提前谢谢了! 我曾经尝试过的例子: 此代码完美: sf.apply_column_style(cols_to_style=['A'], styler_obj=Styler(bg_color=utils.colors.blue)) 但我的问题是,我不知道要改变什么来closures文本环绕和缩小以适应选项: sf.apply_column_style(cols_to_style=['A'], styler_obj=Styler(text_control=wrap_text.none)) NameError: name 'wrap_text' is not defined sf.apply_column_style(cols_to_style=['A'], styler_obj=Styler(text_control=utils.wrap_text.none)) AttributeError: module 'StyleFrame.utils' has no attribute 'wrap_text' sf.apply_column_style(cols_to_style=['A'], styler_obj=Styler(utils.wrap_text.none)) AttributeError: module 'StyleFrame.utils' has no attribute 'wrap_text' sf.apply_column_style(cols_to_style=['A'], styler_obj=Styler(wrap_text=False)) TypeError: __init__() got an unexpected keyword argument 'wrap_text'

如何使用pandas / python来处理excel文件头

我正在使用pandas阅读https://www.whatdotheyknow.com/request/193811/response/480664/attach/3/GCSE%20IGCSE%20results%20v3.xlsx 。 保存了我的脚本 import sys import pandas as pd inputfile = sys.argv[1] xl = pd.ExcelFile(inputfile) # print xl.sheet_names df = xl.parse(xl.sheet_names[0]) print df.head() 然而,这似乎并没有正确处理标题,因为它给 GCSE and IGCSE1 results2,3 in selected subjects4 of pupils at the end of key stage 4 Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6 Unnamed: 7 Unnamed: […]

如何删除从pandas的Excel中读取的重复列

excel中的数据: abad 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 码: df= pd.io.excel.read_excel(r"sample.xlsx",sheetname="Sheet1") df ab a.1 d 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 如何删除a.1列? 当大pandas从excel中读取数据时,会自动将第二个a的列名改为a.1。 我试过df.drop("a.1",index=1) ,这是行不通的。 我有一个巨大的Excel文件,其中有重复的名称,我只感兴趣的列数。

每个值都是字典时,将数据框保存为excel

目前我正在一个项目中读取多个Excel表格,parsing数据,并将组合的数据框保存回Excel文件。 我将多个excel表格读取到数据框中,将每个表格转换为嵌套的字典,然后将所有字符组合成一个大的嵌套字典(数据的三维),最后转换为数据框。 我已经完成了将数据合并到一个大的数据框。 但是,dataframe的每个值都是一个字典,因此使用to_excel保存为excel后,格式不好(如下所示)。 我想要的是重新组织数据,所以每个Excel单元格只包含一个键,索引项或单个值。 这里是我用来保存数据到Excel的代码: with ExcelWriter(dump_excel) as writer: DataFrame(DataFrame(new_dict)).to_excel(writer, sheet_name='yield_all') 我想得到的是如下所示:

用Python刷新Excel外部数据

我有一个Excel文件,我运行一个Python脚本。 Excel文件具有需要在Python脚本运行之前刷新的外部数据连接。 我指的是这里的function: 我正在使用Python 2.7,并依靠大pandas的大部分Excel数据parsing。