假设我有一个带结构的嵌套字典'user_dict':
第1级: UserId(长整数)
第2级:类别(字符串)
第3级:各种属性(浮点数,整数等)
例如,这个字典的条目是:
user_dict[12] = {
"Category 1": {"att_1": 1,
"att_2": "whatever"},
"Category 2": {"att_1": 23,
"att_2": "another"}}
Run Code Online (Sandbox Code Playgroud)
"user_dict"中的每个项目具有相同的结构,"user_dict"包含大量项目,我想将这些项目提供给pandas DataFrame,从属性构建系列.在这种情况下,分层索引对于此目的是有用的.
具体来说,我的问题是,是否存在一种方法来帮助DataFrame构造函数理解该系列应该是从字典中"级别3"的值构建的?
如果我尝试类似的东西:
df = pandas.DataFrame(users_summary)
Run Code Online (Sandbox Code Playgroud)
"级别1"(用户ID)中的项目被视为列,这与我想要实现的目标相反(将用户ID作为索引).
我知道我可以在迭代字典条目后构建系列,但如果有更直接的方法,这将非常有用.类似的问题是询问是否可以从文件中列出的json对象构造pandas DataFrame.
有人建议使用Cython操作c ++对象的方法,当一个类的c ++实例需要提供另一个包装类的构造函数时,如下所述?
请查看PySession类的pyx文件中的注释,该类将python PyConfigParams对象作为参数,然后需要从中提取值以构造c ++ ConfigParams对象.然后使用ConfigParams对象来提供Session的构造函数.
理想的做法是允许我将PyConfigParams对象包装的ConfigParams c ++对象直接"注入"Session的构造函数,而不必先拆除它然后构建一个新的c ++对象来提供构造函数.当然,这是有效的.然而,实施这种解决方案是一种繁琐,残酷的方式,更不用说不可靠了.
我知道PyCapsule,但它可能需要触摸c ++标头,这是我不能做的事情.
与此相关,但另一个问题是:如果我需要一个包装类(让我们说这里是PySession)来通过返回一个ConfigParams实例来模拟C++ api的行为怎么办?我是否需要反过来并拆除c ++对象来构建Python PyConfigParams,然后将其返回给Python世界中的Python用户?任何建议都非常欢迎!谢谢!
假设我有两个名为ConfigParams和Session的c ++类.ConfigParams的一个实例用于提供Session类的构造函数:
// ConfigParams.h
#include <iostream>
using namespace std;
class ConfigParams
{
int parameter1;
public:
ConfigParams(int par1) { this->parameter1 = par1;}
int getPar1() { return this->parameter1; }
};
Run Code Online (Sandbox Code Playgroud)
// Session.h
#include <iostream>
using namespace std;
#include "configparams.h"
class Session
{
int sessionX;
public:
Session(ConfigParams parameters) { this->sessionX = parameters.getPar1(); }
void doSomething();
};
void Session::doSomething()
{
cout << "Session parameters …Run Code Online (Sandbox Code Playgroud) 有人可以指出我可以在哪里找到一个实现CombineFileInputFormat(org.使用Hadoop 0.20.205?这是使用EMR从非常小的日志文件(行中的文本)创建大型分割.
令人惊讶的是,Hadoop没有专门为此目的而制作的这个类的默认实现,并且谷歌搜索看起来我并不是唯一一个被这个混淆的人.我需要编译类并将其捆绑在一个jar中,用于hadoop-streaming,对Java知之甚少,这是一个挑战.
编辑:我已经尝试了butitrails示例,使用了必要的导入但是我得到了下一个方法的编译器错误.