Tag: pandas

从元组列表构造pandas DataFrame

我有一个元组列表 data = [ ('r1', 'c1', avg11, stdev11), ('r1', 'c2', avg12, stdev12), ('r2', 'c1', avg21, stdev21), ('r2', 'c2', avg22, stdev22) ] 我想把它们放入一个pandas DataFrame中,第一列命名的行和第二列命名的列。 似乎照顾行名的方式就像pandas.DataFrame([x[1:] for x in data], index = [x[0] for x in data])但是如何处理获得2x2matrix的列(前一集的输出是3×4)? 是否有一个更智能的方式来照顾行标签,而不是明确地忽略它们? 编辑看来我将需要2个dataframe – 一个平均值和一个标准偏差,是正确的? 或者我可以在每个“单元格”中存储值的列表?

在同一个IPython Notebook单元中制作多个图表

我已经开始我的IPython笔记本 ipython notebook –pylab inline 这是我在一个单元格中的代码 df['korisnika'].plot() df['osiguranika'].plot() 这工作正常,它会画两条线,但在同一张图上。 我想画一个单独的图表上的每一行。 如果图表彼此相邻而不是一个接一个,那就太好了。 我知道我可以把第二行放在下一个单元格中,然后我会得到两个图表。 但是我希望这些图表彼此接近,因为它们表示相同的逻辑单元。

将多个filter应用于pandas DataFrame或Series的高效方法

我有一个场景,用户想要应用几个filterpandasDataFrame或系列对象。 从本质上讲,我想要有效地链接一堆由用户在运行时指定的过滤(比较操作)。 filter应该是添加剂(也就是每个应用应该缩小结果)。 我目前正在使用reindex()但是这每次创build一个新的对象,并复制底层的数据(如果我正确理解文档)。 所以,在过滤大型的Series或者DataFrame时,这可能是非常低效的。 我在想,使用apply() , map()或类似的东西可能会更好。 对于pandas来说,我还是很新的,尽pipe如此还是试图把我的头围绕在一切之上。 TL; DR 我想采取以下forms的字典,并将每个操作应用到给定的Series对象,并返回一个“过滤的”Series对象。 relops = {'>=': [1], '<=': [1]} 长例子 我将从我目前所拥有的一个例子开始,只是过滤一个Series对象。 以下是我目前使用的function: def apply_relops(series, relops): """ Pass dictionary of relational operators to perform on given series object """ for op, vals in relops.iteritems(): op_func = ops[op] for val in vals: filtered = op_func(series, val) series = […]

如何将SQL查询结果转换为PANDAS数据结构?

任何关于这个问题的帮助将不胜感激。 所以基本上我想运行一个查询到我的SQL数据库,并将返回的数据存储为Pandas数据结构。 我附上查询代码。 我读pandas的文档,但我有问题,以确定我的查询的返回types。 我试图打印查询结果,但它没有提供任何有用的信息。 谢谢!!!! from sqlalchemy import create_engine engine2 = create_engine('mysql://THE DATABASE I AM ACCESSING') connection2 = engine2.connect() dataid = 1022 resoverall = connection2.execute("SELECT sum(BLABLA) AS BLA, sum(BLABLABLA2) AS BLABLABLA2, sum(SOME_INT) AS SOME_INT, sum(SOME_INT2) AS SOME_INT2, 100*sum(SOME_INT2)/sum(SOME_INT) AS ctr, sum(SOME_INT2)/sum(SOME_INT) AS cpc FROM daily_report_cooked WHERE campaign_id = '%s'"%dataid) 所以我有点想知道我的variables“resoverall”的格式/数据types是什么,以及如何把它与PANDAS数据结构。

python pandas:删除列A中的重复项,保留B列中值最高的行

我有列A中的重复值的dataframe。我想删除重复项,保留在列B中具有最高值的行。 所以这: AB 1 10 1 20 2 30 2 40 3 10 应该变成这样: AB 1 20 2 40 3 10 Wes添加了一些很好的function来删除重复项: http ://wesmckinney.com/blog/?p=340。 但是AFAICT,它是专门为重复而devise的,所以没有提到select哪些行的条件。 我猜可能有一个简单的方法来做到这一点—也许就像在丢弃重复数据之前对数据框进行sorting一样简单—但是我不知道groupby的内部逻辑是否足够清楚。 有什么build议么?

将列转换为pandas中的string

我有一个SQL查询中的以下DataFrame: (Pdb) pp total_rows ColumnID RespondentCount 0 -1 2 1 3030096843 1 2 3030096845 1 我想要这样做: total_data = total_rows.pivot_table(cols=['ColumnID']) (Pdb) pp total_data ColumnID -1 3030096843 3030096845 RespondentCount 2 1 1 [1 rows x 3 columns] total_rows.pivot_table(cols=['ColumnID']).to_dict('records')[0] {3030096843: 1, 3030096845: 1, -1: 2} 但我想确保303列被铸造成string,而不是整数,所以我得到这个: {'3030096843': 1, '3030096845': 1, -1: 2}

pandasDataFrame列表

我正在满足另一列中的条件,从一列中提取数据的子集。 我可以得到正确的值,但它是在pandas.core.frame.DataFrame。 如何将其转换为列表? import pandas as pd tst = pd.read_csv('C:\\SomeCSV.csv') lookupValue = tst['SomeCol'] == "SomeValue" ID = tst[lookupValue][['SomeCol']] #How To convert ID to a list

如何迭代pandas数据框的列以运行回归

我确信这很简单,但作为python的一个完整的新手,我很难找出如何遍历pandas数据框中的variables,并与每个运行一个回归。 这是我正在做的事情: all_data = {} for ticker in ['FIUIX', 'FSAIX', 'FSAVX', 'FSTMX']: all_data[ticker] = web.get_data_yahoo(ticker, '1/1/2010', '1/1/2015') prices = DataFrame({tic: data['Adj Close'] for tic, data in all_data.iteritems()}) returns = prices.pct_change() 我知道我可以像这样运行一个回归: regs = sm.OLS(returns.FIUIX,returns.FSTMX).fit() 但是假设我想为数据框中的每一列执行此操作。 特别是,我想在FSTMX上倒退FIUIX,然后在FSTMX上倒退FSAIX,然后在FSTMX上倒退FSAVX。 每次回归后,我想存储残差。 我已经尝试了以下各种版本,但我必须得到错误的语法: resids = {} for k in returns.keys(): reg = sm.OLS(returns[k],returns.FSTMX).fit() resids[k] = reg.resid 我认为问题是我不知道如何通过键引用返回列,所以returns[k]可能是错误的。 任何指导最好的方式来做到这一点将不胜感激。 也许我错过了一种常见的pandas方法。

如何将一列分成两列?

我有一列的数据框,我想分成两列,其中一列的标题为' fips' ,另一'row' 我的数据框df看起来像这样: row 0 00000 UNITED STATES 1 01000 ALABAMA 2 01001 Autauga County, AL 3 01003 Baldwin County, AL 4 01005 Barbour County, AL 我不知道如何使用df.row.str[:]来实现分割行单元格的目标。 我可以使用df['fips'] = hello添加一个新列,并用hello填充它。 有任何想法吗? fips row 0 00000 UNITED STATES 1 01000 ALABAMA 2 01001 Autauga County, AL 3 01003 Baldwin County, AL 4 01005 Barbour County, […]

.ix()总是比.loc()和.iloc()好,因为它速度更快,并支持整数和标签访问?

我正在学习Pythonpandas图书馆。 从R背景来看,索引和selectfunction似乎比他们需要的更为复杂。 我的理解是,.loc()只是基于标签的,而.iloc()只是基于整数的。 为什么我应该使用.loc()和.iloc()如果.ix()更快并支持整数和标签访问?