相关疑难解决方法(0)

根据列值删除Pandas中的DataFrame行

我有以下DataFrame:

             daysago  line_race rating        rw    wrating
 line_date                                                 
 2007-03-31       62         11     56  1.000000  56.000000
 2007-03-10       83         11     67  1.000000  67.000000
 2007-02-10      111          9     66  1.000000  66.000000
 2007-01-13      139         10     83  0.880678  73.096278
 2006-12-23      160         10     88  0.793033  69.786942
 2006-11-09      204          9     52  0.636655  33.106077
 2006-10-22      222          8     66  0.581946  38.408408
 2006-09-29      245          9     70  0.518825  36.317752
 2006-09-16      258         11     68  0.486226  33.063381
 2006-08-30      275          8     72  0.446667  32.160051
 2006-02-11      475          5     65  0.164591  10.698423
 2006-01-13      504          0     70  0.142409   9.968634
 2006-01-02 …
Run Code Online (Sandbox Code Playgroud)

python pandas

441
推荐指数
12
解决办法
67万
查看次数

将多个过滤器应用于pandas DataFrame或Series的有效方法

我有一个场景,用户想要将几个过滤器应用于Pandas DataFrame或Series对象.本质上,我想有效地将​​一堆过滤(比较操作)链接在一起,这些过滤由用户在运行时指定.

过滤器应该是添加剂(也就是应用的每个应该是狭窄的结果).

我目前正在使用,reindex()但每次创建一个新对象并复制基础数据(如果我正确理解文档).因此,在过滤大型系列或DataFrame时,这可能非常低效.

我认为使用apply(),map()或类似的东西可能会更好.我对Pandas很陌生,尽管如此仍然试图将我的头脑包裹起来.

TL; DR

我想获取以下表单的字典,并将每个操作应用于给定的Series对象并返回"已过滤"的Series对象.

relops = {'>=': [1], '<=': [1]}
Run Code Online (Sandbox Code Playgroud)

很长的例子

我将从一个当前的例子开始,只是过滤一个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 = series.reindex(series[filtered])
        return series
Run Code Online (Sandbox Code Playgroud)

用户提供包含他们想要执行的操作的字典:

>>> df = pandas.DataFrame({'col1': [0, 1, 2], 'col2': [10, 11, 12]})
>>> print df
>>> print df
   col1  col2
0 …
Run Code Online (Sandbox Code Playgroud)

python algorithm pandas

121
推荐指数
5
解决办法
20万
查看次数

按行切片Pandas DataFrame

我正在hdf = pandas.HDFStore('Survey.h5')通过pandas包处理从h5文件加载的调查数据.在此范围内DataFrame,所有行都是单个调查的结果,而列是单个调查中所有问题的答案.

我的目标是将此数据集缩小到一个较小的数据集,DataFrame仅包括某个问题上具有特定描述答案的行,即此列中的所有相同值.我能够确定具有此条件的所有行的索引值,但我找不到如何删除此行或仅使用这些行创建新的df.

python slice pandas

26
推荐指数
2
解决办法
6万
查看次数

过滤其值小于0的pandas数据帧行

我有像这样的熊猫数据框

df = pd.DataFrame(data=[[21, 1],[32, -4],[-4, 14],[3, 17],[-7,NaN]], columns=['a', 'b'])
df
Run Code Online (Sandbox Code Playgroud)

我希望能够删除列列表中具有负值的所有行,并保留具有NaN的行.

在我的例子中只有2列,但我的数据集中有更多,所以我不能一个接一个地做.

python pandas

7
推荐指数
2
解决办法
4万
查看次数

Python:在特定列中删除 value=0 行

我想在特定列中删除零值的行

>>> df

   salary   age   gender
0   10000    23     1
1   15000    34     0
2   23000    21     1
3     0      20     0
4   28500     0     1
5   35000    37     1
Run Code Online (Sandbox Code Playgroud)

工资和年龄列中的一些数据缺失,第三列,性别是一个二元变量,1 表示男性 0 表示女性。这里的 0 不是缺失的数据,我想删除工资或年龄中的行,这样我就可以得到

>>> df
   salary   age   gender
0   10000    23     1
1   15000    34     0
2   23000    21     1
3   35000    37     1
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

3
推荐指数
1
解决办法
1万
查看次数

Python Pandas:删除 A 列中第一个空单元格下方的所有数据行

我有一个每天都会邮寄给我的 csv 文件,我想编写一个脚本来清理数据,然后再将其推送到数据库中。csv 文件的底部有 2 个空行(图像中的第 73 行和第 74 行)和两行中包含一些垃圾数据(图像中的第 75 行和 76 行),我需要删除这些行。

在此输入图像描述

要识别第一个空行,了解 A 列在第一个空行(图像中的第 73 行)之前始终包含数据可能会有所帮助。

你能帮我弄清楚如何识别这些行并删除其中的数据吗?

python python-3.x pandas

0
推荐指数
1
解决办法
878
查看次数

标签 统计

pandas ×6

python ×6

python-3.x ×2

algorithm ×1

slice ×1