首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将嵌套字典作为行添加到多索引DataFrame中

,可以通过以下步骤实现:

  1. 创建一个空的多索引DataFrame,指定索引的层级结构。import pandas as pd # 创建多索引DataFrame index = pd.MultiIndex.from_tuples([(1, 'A'), (1, 'B'), (2, 'A'), (2, 'B')], names=['Index1', 'Index2']) df = pd.DataFrame(columns=['Column1', 'Column2'], index=index)
  2. 创建一个嵌套字典,其中键表示索引的层级,值表示要添加的数据。data = { (1, 'A'): {'Column1': 10, 'Column2': 20}, (1, 'B'): {'Column1': 30, 'Column2': 40}, (2, 'A'): {'Column1': 50, 'Column2': 60}, (2, 'B'): {'Column1': 70, 'Column2': 80} }
  3. 使用loc方法将嵌套字典作为行添加到多索引DataFrame中。df.loc[len(df)] = pd.Series(data[(1, 'A')])

完整的代码示例如下:

代码语言:python
代码运行次数:0
复制
import pandas as pd

# 创建多索引DataFrame
index = pd.MultiIndex.from_tuples([(1, 'A'), (1, 'B'), (2, 'A'), (2, 'B')], names=['Index1', 'Index2'])
df = pd.DataFrame(columns=['Column1', 'Column2'], index=index)

# 创建嵌套字典
data = {
    (1, 'A'): {'Column1': 10, 'Column2': 20},
    (1, 'B'): {'Column1': 30, 'Column2': 40},
    (2, 'A'): {'Column1': 50, 'Column2': 60},
    (2, 'B'): {'Column1': 70, 'Column2': 80}
}

# 将嵌套字典作为行添加到多索引DataFrame中
df.loc[len(df)] = pd.Series(data[(1, 'A')])

print(df)

这样就能将嵌套字典作为行添加到多索引DataFrame中了。请注意,上述示例中的数据和索引仅供参考,实际使用时需要根据具体情况进行修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • pandas merge left_并集和交集的区别图解

    left: 拼接的左侧DataFrame对象 right: 拼接的右侧DataFrame对象 on: 要加入的列或索引级别名称。 必须在左侧和右侧DataFrame对象中找到。 如果未传递且left_index和right_index为False,则DataFrame中的列的交集将被推断为连接键。 left_on:左侧DataFrame中的列或索引级别用作键。 可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。 right_on: 左侧DataFrame中的列或索引级别用作键。 可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。 left_index: 如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键。 对于具有MultiIndex(分层)的DataFrame,级别数必须与右侧DataFrame中的连接键数相匹配。 right_index: 与left_index功能相似。 how: One of ‘left’, ‘right’, ‘outer’, ‘inner’. 默认inner。inner是取交集,outer取并集。比如left:[‘A’,‘B’,‘C’];right[’’A,‘C’,‘D’];inner取交集的话,left中出现的A会和right中出现的买一个A进行匹配拼接,如果没有是B,在right中没有匹配到,则会丢失。’outer’取并集,出现的A会进行一一匹配,没有同时出现的会将缺失的部分添加缺失值。 sort: 按字典顺序通过连接键对结果DataFrame进行排序。 默认为True,设置为False将在很多情况下显着提高性能。 suffixes: 用于重叠列的字符串后缀元组。 默认为(‘x’,’ y’)。 copy: 始终从传递的DataFrame对象复制数据(默认为True),即使不需要重建索引也是如此。 indicator:将一列添加到名为_merge的输出DataFrame,其中包含有关每行源的信息。 _merge是分类类型,并且对于其合并键仅出现在“左”DataFrame中的观察值,取得值为left_only,对于其合并键仅出现在“右”DataFrame中的观察值为right_only,并且如果在两者中都找到观察点的合并键,则为left_only。

    02

    groupby函数详解

    这是由于变量grouped是一个GroupBy对象,它实际上还没有进行任何计算,只是含有一些有关分组键df[‘key1’]的中间数据而已,然后我们可以调用配合函数(如:.mean()方法)来计算分组平均值等。   因此,一般为方便起见可直接在聚合之后+“配合函数”,默认情况下,所有数值列都将会被聚合,虽然有时可能会被过滤为一个子集。   一般,如果对df直接聚合时, df.groupby([df['key1'],df['key2']]).mean()(分组键为:Series)与df.groupby(['key1','key2']).mean()(分组键为:列名)是等价的,输出结果相同。   但是,如果对df的指定列进行聚合时, df['data1'].groupby(df['key1']).mean()(分组键为:Series),唯一方式。 此时,直接使用“列名”作分组键,提示“Error Key”。 注意:分组键中的任何缺失值都会被排除在结果之外。

    01
    领券