Questions tagged «pandas»

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

4
在熊猫数据框中显示具有一个或多个NaN值的行
我有一个数据框,其中某些行包含缺失值。 In [31]: df.head() Out[31]: alpha1 alpha2 gamma1 gamma2 chi2min filename M66_MI_NSRh35d32kpoints.dat 0.8016 0.9283 1.000000 0.074804 3.985599e+01 F71_sMI_DMRI51d.dat 0.0000 0.0000 NaN 0.000000 1.000000e+25 F62_sMI_St22d7.dat 1.7210 3.8330 0.237480 0.150000 1.091832e+01 F41_Car_HOC498d.dat 1.1670 2.8090 0.364190 0.300000 7.966335e+00 F78_MI_547d.dat 1.8970 5.4590 0.095319 0.100000 2.593468e+01 我想在屏幕上显示那些行。如果尝试的话df.isnull(),它将使用True和给出较长的数据帧False。有什么方法可以选择这些行并将它们打印在屏幕上?
81 python  pandas  dataframe  nan 

8
Python:熊猫合并了多个数据框
我有不同的数据框,需要根据日期列将它们合并在一起。如果我只有两个数据框,则可以使用df1.merge(df2, on='date')来对三个数据框进行处理df1.merge(df2.merge(df3, on='date'), on='date'),但是,使用多个数据框进行处理将变得非常复杂且难以理解。 所有数据框都有一个共同的列- date,但是它们没有相同数量的行或列,而我只需要每个数据框共有每个日期的那些行。 因此,我正在尝试编写一个递归函数,该函数返回一个包含所有数据的数据框,但是它不起作用。那我应该如何合并多个数据框? 我试图diferent方式和喜欢了错误out of range,keyerror 0/1/2/3和can not merge DataFrame with instance of type <class 'NoneType'>。 这是我写的脚本: dfs = [df1, df2, df3] # list of dataframes def mergefiles(dfs, countfiles, i=0): if i == (countfiles - 2): # it gets to the second to last and merges …


3
从熊猫系列中删除NaN
有没有办法从熊猫系列中删除NaN值?我有一个序列,其中可能有也可能没有某些NaN值,我想返回该序列的副本,其中删除了所有NaN。
80 python  pandas  series 

9
在Pandas DataFrame中将无效值替换为None
None在Python的Pandas中,是否有任何方法可以替换值? 您可以使用df.replace('pre', 'post')另一个值并将其替换,但是如果要替换为None值,则无法完成此操作,如果尝试使用该值,则会得到奇怪的结果。 所以这是一个例子: df = DataFrame(['-',3,2,5,1,-5,-1,'-',9]) df.replace('-', 0) 返回成功的结果。 但, df.replace('-', None) 返回以下结果: 0 0 - // this isn't replaced 1 3 2 2 3 5 4 1 5 -5 6 -1 7 -1 // this is changed to `-1`... 8 9 为什么会返回如此奇怪的结果? 由于我想将此数据框倒入MySQL数据库,因此我不能将NaN值放入数据框的任何元素中,而是要放置None。当然,您可以先更改'-'为NaN,然后再转换NaN为None,但是我想知道为什么数据框以这种可怕的方式起作用。 已在Python 2.7和OS X 10.8的pandas 0.12.0开发人员上进行了测试。Python是OS …

5
如何在非唯一列中按日期对pandas DataFrame条目进行分组
熊猫DataFrame包含名为的列"date",其中包含非唯一datetime值。我可以使用以下方法将该行中的行分组: data.groupby(data['date']) 但是,这会将数据按datetime值分割。我想按“日期”列中存储的年份对这些数据进行分组。此页面显示了在使用时间戳作为索引的情况下如何按年份分组,在我的情况下情况并非如此。 如何实现此分组?
80 python  pandas 

5
将列表转换为Pandas数据框列
我需要将列表转换为一列熊猫数据框 当前列表(len = 3): ['Thanks You', 'Its fine no problem', 'Are you sure'] 所需的熊猫DF(形状= 3,): 0 Thank You 1 Its fine no problem 2 Are you sure 请注意,数字代表上述“必需熊猫” DF中的索引。


5
如何将sklearn fit_transform与pandas一起使用并返回数据框而不是numpy数组?
我想将缩放比例(使用来自sklearn.preprocessing的StandardScaler())应用于熊猫数据框。以下代码返回一个numpy数组,因此我丢失了所有列名和索引。这不是我想要的。 features = df[["col1", "col2", "col3", "col4"]] autoscaler = StandardScaler() features = autoscaler.fit_transform(features) 我在网上找到的“解决方案”是: features = features.apply(lambda x: autoscaler.fit_transform(x)) 它似乎可以工作,但是会导致弃用警告: /usr/lib/python3.5/site-packages/sklearn/preprocessing/data.py:583:DeprecationWarning:在数据中0.1d中弃用一维数组,在0.19中会引发ValueError。如果数据具有单个功能,则使用X.reshape(-1,1)来重塑数据,如果包含单个样本,则使用X.reshape(1,-1)来重塑数据。 因此,我尝试: features = features.apply(lambda x: autoscaler.fit_transform(x.reshape(-1, 1))) 但这给出了: 追溯(最近一次通话最近):文件“ ./analyse.py”,第91行,在features = features.apply(lambda x:autoscaler.fit_transform(x.reshape(-1,1)))中,文件“ / usr / lib / python3.5 / site-packages / pandas / core / frame.py“,第3972行,在apply返回self._apply_standard(f,axis,reduce = reduce)文件” …

6
使用多列的Pandas DataFrame聚合函数
有没有一种方法可以像DataFrame.agg方法中那样使用编写聚合函数的方式,该方法将可以访问多个要聚合的数据列?典型的用例是加权平均,加权标准偏差函数。 我希望能够写类似 def wAvg(c, w): return ((c * w).sum() / w.sum()) df = DataFrame(....) # df has columns c and w, i want weighted average # of c using w as weight. df.aggregate ({"c": wAvg}) # and somehow tell it to use w column as weights ...
80 python  pandas 

6
剥离/修剪数据框的所有字符串
清理python / pandas中的多类型数据框的值后,我要修剪字符串。我目前正在执行两条指令: import pandas as pd df = pd.DataFrame([[' a ', 10], [' c ', 5]]) df.replace('^\s+', '', regex=True, inplace=True) #front df.replace('\s+$', '', regex=True, inplace=True) #end df.values 这很慢,我可以改善什么?

5
对熊猫DataFrame中的列进行.str.split()操作后,获取最后一个“列”
我在pandas DataFrame中有一列想要在一个空格上拆分。使用进行拆分非常简单DataFrame.str.split(' '),但是我无法从最后一个条目中创建新列。当我.str.split()进入列时,我得到了一个数组列表,但我不知道如何操纵它来为我的DataFrame获取新列。 这是一个例子。列中的每个条目都包含“符号数据价格”,我想将价格分开(并在一半情况下最终删除“ p” ...或“ c”)。 import pandas as pd temp = pd.DataFrame({'ticker' : ['spx 5/25/2001 p500', 'spx 5/25/2001 p600', 'spx 5/25/2001 p700']}) temp2 = temp.ticker.str.split(' ') 产生 0 ['spx', '5/25/2001', 'p500'] 1 ['spx', '5/25/2001', 'p600'] 2 ['spx', '5/25/2001', 'p700'] 但是temp2[0]只给出一个列表项的数组temp2[:][-1]就会失败。如何将每个数组中的最后一个条目转换为新列?谢谢!
80 python  string  pandas  split 


4
在DataFrame索引上应用功能
在Pandas的索引上应用函数的最佳方法是什么DataFrame?目前,我正在使用这种冗长的方法: pd.DataFrame({"Month": df.reset_index().Date.apply(foo)}) 其中Date的索引foo名称和我正在应用的函数的名称。

4
分组数据框并获得总和和计数?
我有一个看起来像这样的数据框: Company Name Organisation Name Amount 10118 Vifor Pharma UK Ltd Welsh Assoc for Gastro & Endo 2700.00 10119 Vifor Pharma UK Ltd Welsh IBD Specialist Group, 169.00 10120 Vifor Pharma UK Ltd West Midlands AHSN 1200.00 10121 Vifor Pharma UK Ltd Whittington Hospital 63.00 10122 Vifor Pharma UK Ltd …

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.