如何将DataFrame列表导出到一个Excel电子表格中? to_excel状态的文档: 笔记 如果传递一个现有的ExcelWriter对象,那么该表将被添加到现有的工作簿中。 这可以用来将不同的DataFrame保存到一个工作簿 writer = ExcelWriter('output.xlsx') df1.to_excel(writer, 'sheet1') df2.to_excel(writer, 'sheet2') writer.save() 在此之后,我想我可以写一个函数,将一个DataFrame列表保存到一个电子表格中,如下所示: from openpyxl.writer.excel import ExcelWriter def save_xls(list_dfs, xls_path): writer = ExcelWriter(xls_path) for n, df in enumerate(list_dfs): df.to_excel(writer,'sheet%s' % n) writer.save() 然而(有两个小的DataFrames,其中每个都可以单独保存to_excel ),会引发一个exception(Edit:traceback removed) : AttributeError: 'str' object has no attribute 'worksheets' 据推测,我没有正确调用ExcelWriter ,我应该如何做到这一点?
没有使用groupby我怎么会过滤掉没有NaN数据? 假设我有一个matrix,客户将填写“不适用”,“不适用”或其任何变体以及其他内容,并保留为空: import pandas as pd import numpy as np df = pd.DataFrame({'movie': ['thg', 'thg', 'mol', 'mol', 'lob', 'lob'], 'rating': [3., 4., 5., np.nan, np.nan, np.nan], 'name': ['John', np.nan, 'N/A', 'Graham', np.nan, np.nan]}) nbs = df['name'].str.extract('^(N/A|NA|na|n/a)') nms=df[(df['name'] != nbs) ] 输出: >>> nms movie name rating 0 thg John 3 1 thg NaN 4 3 […]
我有一个具有大量特征的数据集,因此分析相关matrix变得非常困难。 我想绘制一个相关matrix,我们使用pandas库中的dataframe.corr()函数。 有没有pandas库提供的内置函数来绘制matrix?
寻找一种方法可靠地确定一个numpy对象是否是一个视图。 相关的问题已经出现了很多次( 这里 , 这里 , 这里 ),人们提供了一些解决scheme,但似乎都有问题: 现在在pandas使用的testing是在my_array.base is not None调用某个视图。 这似乎总是能够捕捉到意见,但也提供了大量的误报(即使报告不正确,报告的情况也是如此)。 numpy.may_share_memory()将检查两个特定的数组,但不会一般地回答 (@RobertKurn说,截至2012年是最好的工具 – 任何改变?) flags['OWNDATA'])被报告(第三条评论的第一个答案)在某些情况下失败。 (我感兴趣的原因是我正在为大pandas实施抄写,而一个保守的指标正在导致过度复制。)
我对Pandas在决定从数据框中select原始数据框的副本或原始视图时使用的规则感到困惑。 如果我有,例如, df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9)) 我明白, query返回一个副本,以便类似的东西 foo = df.query('2 < index <= 5') foo.loc[:,'E'] = 40 将不会对原始dataframedf 。 我也明白,标量或命名切片返回一个视图,以便这些分配,如 df.iloc[3] = 70 要么 df.ix[1,'B':'E'] = 222 会改变df 。 但是当涉及到更复杂的情况时,我却迷失了方向。 例如, df[df.C <= df.B] = 7654321 改变df ,但是 df[df.C <= df.B].ix[:,'B':'E'] 才不是。 有一个简单的规则,pandas使用,我只是失踪? 这些具体情况是怎么回事? 特别是,如何在满足特定查询的数据框中更改所有值(或值的子集)(如我在上面的示例中试图做的那样)? 注:这与这个问题不一样, 我已经阅读了文档 ,但没有受到启发。 我也读过了关于这个主题的“相关”的问题,但是我仍然错过了pandas正在使用的简单规则,以及如何将它应用到 – 例如 – 修改值(或值的子集)在满足特定查询的数据框中。
我打算把Django QuerySet转换成一个pandasDataFrame ,如下所示: qs = SomeModel.objects.select_related().filter(date__year=2012) q = qs.values('date', 'OtherField') df = pd.DataFrame.from_records(q) 它的工作,但是有一个更有效的方法?
我有一个pandasdf中的多索引列的数据集,我想按特定列中的值进行sorting。 我曾尝试使用sortindex和sortlevel,但一直没有能够得到我期待的结果。 我的数据集如下所示: Group1 Group2 ABCABC 1 1 0 3 2 5 7 2 5 6 9 1 0 0 3 7 0 2 0 3 5 我想sorting所有的数据和索引在第1组中列C按降序排列,所以我的结果如下所示: Group1 Group2 ABCABC 2 5 6 9 1 0 0 1 1 0 3 2 5 7 3 7 0 2 0 3 5 是否有可能做到这一点与我的数据所在的结构,或者我应该交换Group1的索引?
我有一个pandas数据框,看起来像这样(它是一个很大的) date exer exp ifor mat 1092 2014-03-17 American M 528.205 2014-04-19 1093 2014-03-17 American M 528.205 2014-04-19 1094 2014-03-17 American M 528.205 2014-04-19 1095 2014-03-17 American M 528.205 2014-04-19 1096 2014-03-17 American M 528.205 2014-05-17 现在我想逐行迭代,当我走过每一行, ifor在每行的值可以改变,取决于一些条件,我需要查找另一个dataframe。 现在,我如何更新这个迭代。 试了几件事,没有一个工作。 for i, row in df.iterrows(): if <something>: row['ifor'] = x else: row['ifor'] = y df.ix[i]['ifor'] […]
我相信有一个明显的方法来做到这一点,但现在不能想到任何浮油。 基本上,而不是引发exception,我想要得到True或False ,看是否存在一个值在pandas df索引。 df = pandas.DataFrame({'test':[1,2,3,4]}, index=['a','b','c','d']) df.loc['g'] # (should give False) 我现在的工作是以下几点 sum(df.index == 'g')
我有一个数据框与unix时间和价格。 我想转换索引列,以便它显示在人类可读的date。 所以,例如我有“date”为1349633705在索引列,但我希望它显示为10/07/2012(或至less10/07/2012 18:15)。 对于某些上下文,这里是我正在使用的代码和我已经尝试过的代码: import json import urllib2 from datetime import datetime response = urllib2.urlopen('http://blockchain.info/charts/market-price?&format=json') data = json.load(response) df = DataFrame(data['values']) df.columns = ["date","price"] #convert dates df.date = df.date.apply(lambda d: datetime.strptime(d, "%Y-%m-%d")) df.index = df.date df 正如你所看到的,我正在使用df.date = df.date.apply(lambda d: datetime.strptime(d, "%Y-%m-%d")) ,因为我正在工作整数,而不是string。 我想我需要使用datetime.date.fromtimestamp但我不太清楚如何将其应用于整个df.date。 谢谢。