相关疑难解决方法(0)

修改pandas数据帧中的行子集

假设我有一个带有两列A和B的pandas DataFrame.我想修改这个DataFrame(或者创建一个副本),这样只要A为0,B总是NaN.我将如何实现?

我尝试了以下内容

df['A'==0]['B'] = np.nan
Run Code Online (Sandbox Code Playgroud)

df['A'==0]['B'].values.fill(np.nan)
Run Code Online (Sandbox Code Playgroud)

没有成功.

python pandas

126
推荐指数
5
解决办法
11万
查看次数

在pandas MultiIndex DataFrame中选择行

目标和动机

(x, y)API已经日益普及,多年来,然而,没有关于它的一切是完全理解在结构方面,工作和相关的操作.

一个重要的操作是过滤.过滤是一种常见的要求,但用例是多种多样的.因此,某些方法和功能将比其他用例更适用于某些用例.

总之,本文的目的是触及一些常见的过滤问题和用例,演示解决这些问题的各种不同方法,并讨论它们的适用性.本文试图解决的一些高级问题是

  • 基于单个值/标签切片
  • 基于来自一个或多个级别的多个标签进行切片
  • 过滤布尔条件和表达式
  • 哪种方法适用于什么情况

这些问题已分解为6个具体问题,如下所列.为简单起见,以下设置中的示例DataFrame仅具有两个级别,并且没有重复的索引键.提出问题的大多数解决方案可以推广到N级.

本文不会介绍如何创建MultiIndexes,如何对它们执行赋值操作,或任何与性能相关的讨论(这些是另一个时间的单独主题).


问题

问题1-6将在上下文中询问下面的设置.

mux = pd.MultiIndex.from_arrays([
    list('aaaabbbbbccddddd'),
    list('tuvwtuvwtuvwtuvw')
], names=['one', 'two'])

df = pd.DataFrame({'col': np.arange(len(mux))}, mux)

         col
one two     
a   t      0
    u      1
    v      2
    w      3
b   t      4
    u      5
    v      6
    w      7
    t      8
c   u      9
    v     10
d   w     11
    t     12
    u     13
    v     14
    w     15
Run Code Online (Sandbox Code Playgroud)

问题1:选择单个项目
如何在"1"级中选择"a"的行?

         col
one two     
a   t      0 …
Run Code Online (Sandbox Code Playgroud)

python slice multi-index dataframe pandas

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

从多指数熊猫中选择

我有一个带有"A"和"B"列的多索引数据框.

是否有一种方法可以通过过滤多索引的一列来选择行,而无需将索引重置为单列索引.

例如.

# has multi-index (A,B)
df
#can I do this? I know this doesn't work because the index is multi-index so I need to     specify a tuple

df.ix[df.A ==1]
Run Code Online (Sandbox Code Playgroud)

python multi-index dataframe pandas

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

标签 统计

pandas ×3

python ×3

dataframe ×2

multi-index ×2

slice ×1