朱莉娅:如何将(:col1,:col2)`之间的'Between'转换为DataFrames.DataFrame的列索引?
考虑朱莉娅:如何将(:col1,:col2)`之间的'Between'转换为DataFrames.DataFrame的列索引?,dataframe,julia,Dataframe,Julia,考虑 using DataFrames df=DataFrame(a=1:3, b=1:3, c=1:3) 假设我想把(:b,:c)之间的转换成列索引,它应该返回[2,3] 我可以选择那些列提取名称,然后调用columnindex,但这不是很优雅。使用: names(df, Between(:b, :c)) 要获取选定的列名和名称,请执行以下操作: columnindex.(Ref(df), names(df, Between(:b, :c))) 或者(更长但更容易阅读) 获取列号 如果您
using DataFrames
df=DataFrame(a=1:3, b=1:3, c=1:3)
假设我想把(:b,:c)之间的转换成列索引,它应该返回[2,3]
我可以选择那些列
提取名称,然后调用columnindex
,但这不是很优雅。使用:
names(df, Between(:b, :c))
要获取选定的列名和名称,请执行以下操作:
columnindex.(Ref(df), names(df, Between(:b, :c)))
或者(更长但更容易阅读)
获取列号
如果您想要更快的内部产品(即不保证长期有效且未记录;但不太可能更改-因此使用相对安全):
在DataFrames.index
上使用getindex
与使用columnindex
之间的一个小区别是:
columnindex
将为不存在的列返回0
(而getindex
在DataFrames.index
错误时)
- 您不能将整数传递给
columnindex
,而可以将其传递给DataFrames.index上的getindex
列索引(df,介于(:b,:c)之间)的PR有意义吗<代码>列索引
和列索引
作为别名,我将在其中进行注释。
[columnindex(df, n) for n in names(df, Between(:b, :c))]
DataFrames.index(df)[Between(:b, :c)]