相关疑难解决方法(0)

如何将条件应用于熊猫 iloc

2 - end从 Pandas DataFrame 中选择列iloc作为

d=c.iloc[:,2:]
Run Code Online (Sandbox Code Playgroud)

现在如何将条件应用于此选择?例如,如果column1==1.

python dataframe pandas

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

在多级索引的一个级别上过滤pandas数据帧

如果我有一个带有多级索引的pandas数据帧,我该如何按该索引的某个级别进行过滤.例如:

df = pd.DataFrame({"id": [1,2,1,2], "time": [1, 1, 2, 2], "val": [1,2,3,4]})
df.set_index(keys=["id", "time"], inplace=True)
Run Code Online (Sandbox Code Playgroud)

我想做的事情如下:

df[df["time"] > 1]
Run Code Online (Sandbox Code Playgroud)

time不再是专栏.我可以将它保留为列,但我不想拖动数据副本.

python pandas

9
推荐指数
2
解决办法
2901
查看次数

根据pandas中多列中的值从Dataframe中选择行

这个问题与另一个问题非常相关,我甚至会在这个问题上使用非常有用的解决方案中的例子.以下是已接受的解决方案(信用证到unutbu)的示例:

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                   'B': 'one one two three two two one three'.split(),
                   'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
#      A      B  C   D
# 0  foo    one  0   0
# 1  bar    one  1   2
# 2  foo    two  2   4
# 3  bar  three  3   6
# 4  foo    two  4   8
# 5  bar    two  5 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

从Pandas DataFrame返回单个单元格值

我想问一个问题是这个帖子的扩展:

根据pandas中列的值从DataFrame中选择行.

该线程的代码如下所示:

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
               'B': 'one one two three two two one three'.split(),
               'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
#      A      B  C   D
# 0  foo    one  0   0
# 1  bar    one  1   2
# 2  foo    two  2   4
# 3  bar  three  3   6
# 4  foo    two  4   8
# 5  bar    two  5  10 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

通过与列表进行比较来过滤掉 panda-df 的行

经常出现以下问题。假设我有一个数据框,其中一列可以采用离散值:

df = pd.DataFrame({'col1': [1, 2,3,4,5,6,7], 'col2': ["A", "B", "A", "C", "B", "A", "D"]})
Run Code Online (Sandbox Code Playgroud)

在这种情况下,col2可取的值A,B或C.我只想行,其中col2 等于A或B.我想下面的语法会的工作,

df["col2"] not in ["A", "B"]
Run Code Online (Sandbox Code Playgroud)

但是,这给了我错误 ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

有没有一种巧妙的方法来过滤掉这些行?

python pandas

6
推荐指数
1
解决办法
1828
查看次数

在 pandas 中按浮点列中的值选择行

我将 csv 数据文件导入到df带有.pandas DataFrame 的 pandas DataFrame 中pd.read_csv。该文本文件包含一列,其中包含如下字符串:

y
0.001
0.0003
0.0001
3e-05
1e-05
1e-06
Run Code Online (Sandbox Code Playgroud)

如果我打印 DataFrame,pandas 会输出这些值的十进制表示形式,逗号后有 6 位数字,一切看起来都很好。

当我尝试按值选择行时,如下所示

df[df['y'] == value],
Run Code Online (Sandbox Code Playgroud)

通过输入值的相应十进制表示形式,pandas 可以正确匹配某些值(例如:第 0、2、4 行),但不会匹配其他值(第 1、3、5 行)。这当然是因为这些行值在基数 2 中没有完美的表示。

我能够通过以下方式解决这个问题:

df[abs(df['y']/value-1) <= 0.0001]
Run Code Online (Sandbox Code Playgroud)

但似乎有些尴尬。我想知道的是: numpy 已经有一个方法.isclose,专门用于此目的。

.isclose像这样的情况有没有办法使用呢?或者 pandas 中有更直接的解决方案?

python pandas

5
推荐指数
1
解决办法
3270
查看次数

根据pandas中列中的多个值从DataFrame中选择行

这不是一个重复的问题,但类似于

根据pandas中列的值从DataFrame中选择行

在上一个链接的答案中,如果我有多个标准,它只基于一个标准.

我想在列中选择许多行,而不仅仅是基于特定值的行.为了论证,考虑来自世界银行的DataFrame

import pandas.io.wb as wb
import pandas as pd
import numpy as np
df2= wb.get_indicators()
Run Code Online (Sandbox Code Playgroud)

我选择certian值的方式就是这样

df2.loc[df2['id'] == 'SP.POP.TOTL']
Run Code Online (Sandbox Code Playgroud)

df2.loc[df2['id'] == 'NY.GNP.PCAP.CD']
Run Code Online (Sandbox Code Playgroud)

如何在一个新数据帧中选择或者说3或4?这样行是:

'SP.POP.TOTL'
'NY.GNP.PCAP.CD'
Run Code Online (Sandbox Code Playgroud)

先感谢您

python dataframe pandas

5
推荐指数
1
解决办法
8425
查看次数

大熊猫根据另一个细胞改变细胞值

我目前正在格式化来自两个不同数据集的数据.其中一个数据集反映了按小时计算人数的观察数,第二个是基于5分钟间隔生成的wifi日志的人数.

将这两个数据帧合并为一个之后,我遇到的问题是每小时("10:00:00")有原始数据集,但其他数据(每5分钟像"10:47:14")不包括此数据.

以下是合并数据框的外观:

        room       time              con     auth  capacity    %     Count  module    size 
0       B002    Mon Nov 02 10:32:06  23      23       90       NaN    NaN   NaN        NaN`  
1       B002    Mon Nov 02 10:37:10  25      25       90       NaN    NaN   NaN        NaN`  
12527   B002    Mon Nov 02 10:00:00  NaN     NaN      90       50%    45.0  COMP30520   60`  
12528   B002    Mon Nov 02 11:00:00  NaN     NaN      90       0%     0.0   COMP30520   60`
Run Code Online (Sandbox Code Playgroud)

有没有办法让我通过数据框并从11:00:00找到有关"占用","占用","模块"和"大小"的所有信息,并将其写入所有的单元格中.同一天,小时在10:00:00到10:59:59之间?

这将允许我获得每一行的所有信息,然后允许我收集min(),max()median()基于"日"和"小时".

要回答原始数据帧的注释,这里有:
第一个数据帧:

    time                room    module      size
0   Mon …
Run Code Online (Sandbox Code Playgroud)

python dataframe python-3.x pandas

5
推荐指数
1
解决办法
1541
查看次数

根据熊猫中多列的值从数据框中选择行

这个问题与这两个问题anotherthisone非常相关,我什至会使用这个问题上非常有用的公认解决方案中的示例。这是已接受的解决方案中的示例(归功于 unutbu):

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                   'B': 'one one two three two two one three'.split(),
                   'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
#      A      B  C   D
# 0  foo    one  0   0
# 1  bar    one  1   2
# 2  foo    two  2   4
# 3  bar  three  3   6
# 4  foo    two  4   8
# 5  bar …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

熊猫:根据其他列的值有条件地替换值

我有一个数据框(df),如下所示:

                    environment     event   
time                    
2017-04-28 13:08:22     NaN         add_rd  
2017-04-28 08:58:40     NaN         add_rd  
2017-05-03 07:59:35     test        add_env
2017-05-03 08:05:14     prod        add_env
...
Run Code Online (Sandbox Code Playgroud)

现在,我的目标是针对add_rdevent列中的每个列,该列中的关联NaNenvironment应替换为string RD

                    environment     event   
time                    
2017-04-28 13:08:22     RD          add_rd  
2017-04-28 08:58:40     RD          add_rd  
2017-05-03 07:59:35     test        add_env
2017-05-03 08:05:14     prod        add_env
...
Run Code Online (Sandbox Code Playgroud)

我到目前为止所做的

我偶然发现df['environment'] = df['environment].fillna('RD')哪个替换了每个 NaN(这不是我要寻找的),pd.isnull(df['environment'])它正在检测缺失的值,np.where(df['environment'], x,y)这似乎是我想要的但无法正常工作。此外,我是否尝试过

import pandas as pd

for env in df['environment']:
    if pd.isnull(env) and df['event'] …
Run Code Online (Sandbox Code Playgroud)

python dataframe python-3.x pandas

5
推荐指数
2
解决办法
5240
查看次数

标签 统计

pandas ×10

python ×10

dataframe ×4

python-3.x ×2