相关疑难解决方法(0)

使用pandas.DataFrame中的复杂条件进行选择

例如,我有简单的DF:

import pandas as pd
from random import randint

df = pd.DataFrame({'A': [randint(1, 9) for x in xrange(10)],
                   'B': [randint(1, 9)*10 for x in xrange(10)],
                   'C': [randint(1, 9)*100 for x in xrange(10)]})
Run Code Online (Sandbox Code Playgroud)

我可以使用Pandas的方法和习语从"A"中选择"B"的相应值大于50,"C" - 不等于900的值吗?

python pandas

204
推荐指数
4
解决办法
45万
查看次数

熊猫:根据更复杂的标准选择和修改数据框

我正在看这个这个线程,虽然我的问题没有那么不同,但它有一些差异.我有一个数据帧floats,我想用字符串替换.说:

      A     B       C
 A    0     1.5     13
 B    0.5   100.2   7.3
 C    1.3   34      0.01
Run Code Online (Sandbox Code Playgroud)

对于这个表我想用几个标准替换,但只有第一个替换工作:

df[df<1]='N' # Works
df[(df>1)&(df<10)]#='L' # Doesn't work
df[(df>10)&(df<50)]='M'  # Doesn't work
df[df>50]='H'  # Doesn't work
Run Code Online (Sandbox Code Playgroud)

如果我改为基于第二行的选择float,仍然不起作用:

((df.applymap(type)==float) & (df<10) & (df>1)) #Doesn't work
Run Code Online (Sandbox Code Playgroud)

我想知道如何申请pd.DataFrame().mask这里,或任何其他方式.我该怎么解决这个问题?

或者,我知道我可以逐列阅读并在每个系列中应用替换,但这似乎有点适得其反

编辑:任何人都可以解释为什么上面的4个简单分配不起作用?

python pandas

10
推荐指数
3
解决办法
430
查看次数

标签 统计

pandas ×2

python ×2