我有一系列字典如下:
julia> data
2-element Array{Any,1}:
Dict{String,Any}("ratio1"=>1.36233,"time"=>"2014-06-19T15:47:40.000000Z","ratio2"=>1.36243)
Dict{String,Any}("ratio1"=>1.3623,"time"=>"2014-06-19T15:48:00.000000Z","ratio2"=>1.36245)
Run Code Online (Sandbox Code Playgroud)
我怎样才能把它一次性弹出到一个数据帧中,而不用一个一个地循环遍历每个字典和键,这样我就有一个如下所示的数据帧:
2×3 DataFrame
? Row ? ratio1 ? ratio2 ? time ?
? ? Float64 ? Float64 ? String ?
?????????????????????????????????????????????????????????
? 1 ? 1.36233 ? 1.36243 ? 2014-06-19T15:47:40.000000Z ?
? 2 ? 1.3623 ? 1.36245 ? 2014-06-19T15:48:00.000000Z ?
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用一个矢量初始化后填充一个矢量,with_capacity()
因为在创建矢量之前已知元素的数量,并且使用它似乎更有效。
以下代码不会使用随机值AT ALL填充:println!("{}", v.len());
输出零。
use rand::Rng;
fn main() {
const NUMBER_OF_RANDOM_NUMBERS: usize = 10;
let mut v = Vec::with_capacity(NUMBER_OF_RANDOM_NUMBERS);
for i in &mut v {
*i += rand::thread_rng().gen_range(1, 2^32);
}
println!("{}", v.len());
}
Run Code Online (Sandbox Code Playgroud)
我的想法是,在let mut v = Vec::with_capacity(NUMBER_OF_RANDOM_NUMBERS)
使用10个零初始化一个崭新的向量之后,然后使用rand::thread_rng().gen_range(1, 2^32)
插入,或者我应该说,向每个零添加一个随机数。
我在这里想念什么吗?
我有一个带有所有int64类型列的DataFrame。
City Val ...
0 3 1
1 2 43
2 0 32
3 1 54
Run Code Online (Sandbox Code Playgroud)
然后,我列出了类别名称:
names = ['Sydney', 'Tokyo', 'Vancouver', 'Toronto']
Run Code Online (Sandbox Code Playgroud)
我要基于names
列表索引(即0 =“悉尼”和1 =“东京”),用城市名称填充“城市”列。
理想的结果:
City Val ...
0 Toronto 1
1 Vancouver 43
2 Sydney 32
3 Tokyo 54
Run Code Online (Sandbox Code Playgroud)
我试过:df['City'].loc[df['City'].isin(names), df['City']]=names.index(df['City'])
,但出现错误
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)
并且,我想将“城市”列更改为类别类型。
df['City'] = df['City'].astype('category')
df['City'].cat.set_categories(names, ordered=True, inplace=True)
Run Code Online (Sandbox Code Playgroud) 当我尝试从Julia中的DataFrame中提取列时,出现以下错误:
julia> datecol = df [:,:time]
┌警告:使用冒号作为行进行索引将在以后创建副本.使用df[col_inds]
得到而不进行复制的列
在无│呼叫者=顶层范围:0
└@核心无:0
5000-元件
阵列{字符串,1}:
"2002-11-27T22:00:00.000000Z"
"2002-11 -28T22:00:00.000000Z"
.
.
.
但是,当我执行时df[:time]
没有产生任何警告.
有人可以阐明df[:, :time]
和之间的区别df[:time]
吗?每个都执行根本不同的操作???