dataframe - 使用多个条件选择数据框行的子集

标签 dataframe julia

我想选择满足多行多个条件的数据帧子集。我知道我可以按顺序执行此操作 - 首先选择与第一个条件匹配的子集,然后选择与第二个条件匹配的部分,等等,但似乎应该能够在一个步骤中完成。以下内容似乎应该有效,但事实并非如此。显然,在其他语言的 DataFrame 实现中,它确实是这样工作的。有什么想法吗?

using DataFrames
df = DataFrame()
df[:A]=[ 1, 3, 4, 7, 9]
df[:B]=[ "a", "c", "c", "D", "c"]
df[(df[:A].<5)&&(df[:B].=="c"),:] 

type: non-boolean (DataArray{Bool,1}) used in boolean context
while loading In[18], in expression starting on line 5

最佳答案

这是 Julia 的事情,而不是 DataFrame 的事情:您需要 & 而不是 &&。例如:

julia> [true, true] && [false, true]
ERROR: TypeError: non-boolean (Array{Bool,1}) used in boolean context

julia> [true, true] & [false, true]
2-element Array{Bool,1}:
 false
  true

julia> df[(df[:A].<5)&(df[:B].=="c"),:]
2x2 DataFrames.DataFrame
| Row | A | B   |
|-----|---|-----|
| 1   | 3 | "c" |
| 2   | 4 | "c" |

FWIW,这与 Python 中的 pandas 的工作方式相同:

>>> df[(df.A < 5) & (df.B == "c")]
   A  B
1  3  c
2  4  c

关于dataframe - 使用多个条件选择数据框行的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29421092/

相关文章:

python - 如何在多个条件下填充数据框中新列的值

plot - 如何使用 Plots.jl 将特定的 x 刻度、标签和垂直线添加到绘图中?

julia - Julia 中如何计算数组的众数?

python - Pandas:如何交换行的单元格值,以便它们按字母顺序排列

r - SparkR(Spark 2.1.0 或 2.2.0)中有 MaxAbsScaler 吗?

pandas - 有效地从 pandas DataFrame 中提取行,忽略丢失的索引标签

julia - 迭代 Julia 中的所有可能性

Julia:在 Pluto 中获取运行时输入

python - 在 Python 脚本中运行 Julia 文件

python - 读取数据时删除列包含某些字符串: python