假设我有一个带结构的嵌套字典'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.
我在pandas这里感觉到一些奇怪的行为.我有一个看起来像的数据框
df = pd.DataFrame(columns=['Col 1', 'Col 2', 'Col 3'],
index=[('1', 'a'), ('2', 'a'), ('1', 'b'), ('2', 'b')])
In [14]: df
Out[14]:
Col 1 Col 2 Col 3
(1, a) NaN NaN NaN
(2, a) NaN NaN NaN
(1, b) NaN NaN NaN
(2, b) NaN NaN NaN
Run Code Online (Sandbox Code Playgroud)
我可以设置任意元素的值
In [15]: df['Col 2'].loc[('1', 'b')] = 6
In [16]: df
Out[16]:
Col 1 Col 2 Col 3
(1, a) NaN NaN NaN
(2, a) NaN NaN NaN
(1, b) NaN …Run Code Online (Sandbox Code Playgroud)