Questions tagged «pandas»

Pandas是用于数据处理和分析的Python库,例如,在统计,实验科学结果,计量经济学或金融学中常见的数据框,多维时间序列和横截面数据集。Pandas是Python中主要的数据科学库之一。

10
熊猫获得列平均值/平均值
我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值weight >>> allDF ID birthyear weight 0 619040 1962 0.1231231 1 600161 1963 0.981742 2 25602033 1963 1.3123124 3 624870 1987 0.94212 以下返回几个值,而不是一个: allDF[['weight']].mean(axis=1) 这样: allDF.groupby('weight').mean()
155 python  pandas 

3
将Pandas Multi-Index转换为专栏
我有一个具有2个索引级别的数据框: value Trial measurement 1 0 13 1 3 2 4 2 0 NaN 1 12 3 0 34 我想变成这样: Trial measurement value 1 0 13 1 1 3 1 2 4 2 0 NaN 2 1 12 3 0 34 我怎样才能最好地做到这一点? 我需要这样做是因为我想按照此处的指示汇总数据,但是如果将它们用作索引,则无法选择这样的列。

10
在熊猫系列中查找元素的索引
我知道这是一个非常基本的问题,但是由于某种原因我找不到答案。如何获取python pandas中Series某些元素的索引?(第一次出现就足够了) 即,我想要类似的东西: import pandas as pd myseries = pd.Series([1,4,0,7,5], index=[0,1,2,3,4]) print myseries.find(7) # should output 3 当然,可以使用循环定义这样的方法: def find(s, el): for i in s.index: if s[i] == el: return i return None print find(myseries, 7) 但我认为应该有更好的方法。在那儿?
154 python  pandas 

5
如何通过密钥按数据组访问熊猫
如何通过密钥访问groupby对象中的相应groupby数据帧? 通过以下groupby: rand = np.random.RandomState(1) df = pd.DataFrame({'A': ['foo', 'bar'] * 3, 'B': rand.randn(6), 'C': rand.randint(0, 20, 6)}) gb = df.groupby(['A']) 我可以遍历它来获取密钥和组: In [11]: for k, gp in gb: print 'key=' + str(k) print gp key=bar A B C 1 bar -0.611756 18 3 bar -1.072969 10 5 bar -2.301539 …

7
熊猫:求和给定列的DataFrame行
我有以下DataFrame: In [1]: import pandas as pd df = pd.DataFrame({'a': [1,2,3], 'b': [2,3,4], 'c':['dd','ee','ff'], 'd':[5,9,1]}) df Out [1]: a b c d 0 1 2 dd 5 1 2 3 ee 9 2 3 4 ff 1 我想增加一列'e'是列的总和'a','b'和'd'。 在各个论坛上,我认为这样会起作用: df['e'] = df[['a','b','d']].map(sum) 但事实并非如此。 我想知道适当的操作与列的列表['a','b','d']和df作为输入。
153 python  pandas  dataframe  sum 


5
如何摆脱熊猫DataFrame中的“未命名:0”列?
我遇到一种情况,有时当我csv从中读取时,会df得到一个不需要的类似索引的列,名为unnamed:0。 file.csv ,A,B,C 0,1,2,3 1,4,5,6 2,7,8,9 CSV读取与此: pd.read_csv('file.csv') Unnamed: 0 A B C 0 0 1 2 3 1 1 4 5 6 2 2 7 8 9 这很烦人!有谁知道如何摆脱这一点?
152 python  pandas  csv  dataframe 

3
熊猫中布尔索引的逻辑运算符
我正在Pandas中使用布尔值索引。问题是为什么声明: a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)] 工作正常而 a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)] 退出错误? 例: a=pd.DataFrame({'x':[1,1],'y':[10,20]}) In: a[(a['x']==1)&(a['y']==10)] Out: x y 0 1 10 In: a[(a['x']==1) and (a['y']==10)] Out: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

8
熊猫可以自动识别日期吗?
今天,我感到惊讶的是,pandas在从数据文件中读取数据时能够识别值的类型: df = pandas.read_csv('test.dat', delimiter=r"\s+", names=['col1','col2','col3']) 例如,可以通过以下方式检查它: for i, r in df.iterrows(): print type(r['col1']), type(r['col2']), type(r['col3']) 特别是整数,浮点数和字符串可以正确识别。但是,我有一列的日期采用以下格式:2013-6-4。这些日期被识别为字符串(而不是python日期对象)。有没有一种方法可以“学习”熊猫到公认的日期?
151 python  date  types  dataframe  pandas 

3
熊猫仅使用列名创建空的DataFrame
我有一个动态的DataFrame,它工作正常,但是当没有数据要添加到DataFrame中时,出现错误。因此,我需要一个解决方案以仅使用列名创建一个空的DataFrame。 现在我有这样的事情: df = pd.DataFrame(columns=COLUMN_NAMES) # Note that there are now row data inserted. PS:重要的是,列名仍应出现在DataFrame中。 但是当我这样使用它时,我得到的结果是这样的: Index([], dtype='object') Empty DataFrame “空DataFrame”部分很好!但是,除了索引之外,我还需要显示列。 编辑: 我发现的一件重要事情:我正在使用Jinja2将此DataFrame转换为PDF,因此我在调出一种方法,首先将其输出为HTML,如下所示: df.to_html() 我认为这是专栏迷路的地方。 Edit2:通常,我遵循以下示例:http : //pbpython.com/pdf-reports.html。CSS也来自链接。这就是我将数据帧发送到PDF的过程: env = Environment(loader=FileSystemLoader('.')) template = env.get_template("pdf_report_template.html") template_vars = {"my_dataframe": df.to_html()} html_out = template.render(template_vars) HTML(string=html_out).write_pdf("my_pdf.pdf", stylesheets=["pdf_report_style.css"]) 编辑3: 如果在创建后立即打印出数据框,则会得到以下信息: [0 rows x 9 columns] …
151 python  pandas  dataframe 

12
在熊猫中用NaN替换空白值(空白)
我想在包含空格(任意数量)的Pandas数据框中找到所有值,并用NaN替换这些值。 有什么想法可以改善吗? 基本上我想把这个: A B C 2000-01-01 -0.532681 foo 0 2000-01-02 1.490752 bar 1 2000-01-03 -1.387326 foo 2 2000-01-04 0.814772 baz 2000-01-05 -0.222552 4 2000-01-06 -1.176781 qux 变成这个: A B C 2000-01-01 -0.532681 foo 0 2000-01-02 1.490752 bar 1 2000-01-03 -1.387326 foo 2 2000-01-04 0.814772 baz NaN 2000-01-05 -0.222552 NaN …
150 python  pandas  dataframe 

6
将多个过滤器应用于pandas DataFrame或Series的有效方法
我有一种情况,用户想要将多个过滤器应用于Pandas DataFrame或Series对象。本质上,我想有效地将​​用户在运行时指定的一堆过滤(比较操作)链接在一起。 过滤器应为可加性的(又称每个过滤器应缩小结果)。 我当前正在使用,reindex()但这每次都会创建一个新对象并复制基础数据(如果我正确理解了文档)。因此,这在过滤大型Series或DataFrame时可能效率很低。 我认为使用apply(),map()或类似的方法可能更好。我对Pandas来说还很陌生,因此仍然想尽一切办法。 TL; DR 我想采用以下形式的字典,并将每个操作应用于给定的Series对象,并返回一个“过滤后的” Series对象。 relops = {'>=': [1], '<=': [1]} 长例子 我将从当前的示例开始,仅过滤单个Series对象。以下是我当前正在使用的功能: 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 …
148 python  algorithm  pandas 

4
python pandas:将带有参数的函数应用于一系列
我想将带有参数的函数应用于python pandas中的系列: x = my_series.apply(my_function, more_arguments_1) y = my_series.apply(my_function, more_arguments_2) ... 该文档描述了对apply方法的支持,但不接受任何参数。是否存在接受参数的其他方法?另外,我是否缺少一个简单的解决方法? 更新(2017年10月): 请注意,由于最初询问此问题以来,apply()已对熊猫进行了更新以处理位置和关键字参数,并且上面的文档链接现在反映了这一点,并说明了如何包括这两种类型的参数。
147 python  pandas  apply 

8
具有NaN(缺失)值的pandas GroupBy列
我有一个DataFrame,在我希望分组的列中有许多缺失的值: import pandas as pd import numpy as np df = pd.DataFrame({'a': ['1', '2', '3'], 'b': ['4', np.NaN, '6']}) In [4]: df.groupby('b').groups Out[4]: {'4': [0], '6': [2]} 看到Pandas删除了具有NaN目标值的行。(我想包括这些行!) 由于我需要许多这样的操作(许多col具有缺失的值),并且使用的函数比中位数(通常是随机森林)更复杂,因此我想避免编写过于复杂的代码。 有什么建议?我应该为此编写一个函数还是有一个简单的解决方案?

14
熊猫与groupby占总数的百分比
这显然很简单,但是作为一个笨拙的新手,我陷入了困境。 我有一个包含3列的CSV文件,分别是该办公室的州,办公室ID和销售。 我想计算给定状态下每个办公室的销售百分比(每个州的所有百分比的总和是100%)。 df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3, 'office_id': range(1, 7) * 2, 'sales': [np.random.randint(100000, 999999) for _ in range(12)]}) df.groupby(['state', 'office_id']).agg({'sales': 'sum'}) 返回: sales state office_id AZ 2 839507 4 373917 6 347225 CA 1 798585 3 890850 5 454423 CO 1 819975 3 202969 …
147 python  pandas 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.