【发布时间】:2018-12-09 04:47:19
【问题描述】:
假设我有以下多索引数据框,使用以下代码生成:
import pandas as pd, numpy as np
names = ['Name1','Name2','Name3','Name4']
values = ['x1','x2','x3','x4']
categories = ['y1','y2','y3']
x1 = pd.Series([0, 0, 0], index=categories)
index = pd.MultiIndex.from_product([names, values]); placeholders = np.zeros((len(names)*len(values), len(categories)))
df = pd.DataFrame(placeholders, index=index, columns=categories)
for i in names:
for j in values:
df.loc[i,j] = x1
y1 y2 y3
Name1 x1 0.0 0.0 0.0
x2 0.0 0.0 0.0
x3 0.0 0.0 0.0
x4 0.0 0.0 0.0
Name2 x1 0.0 0.0 0.0
x2 0.0 0.0 0.0
x3 0.0 0.0 0.0
x4 0.0 0.0 0.0
Name3 x1 0.0 0.0 0.0
x2 0.0 0.0 0.0
x3 0.0 0.0 0.0
x4 0.0 0.0 0.0
Name4 x1 0.0 0.0 0.0
x2 0.0 0.0 0.0
x3 0.0 0.0 0.0
x4 0.0 0.0 0.0
我将如何使用如下字典填充与行 x1 对应的列 y3 并填充 np.nan 以获取 y3 列中任何其他行的值或给定名称(即Name1、Name2、Name3 等)不是字典中的键?
{'Name1': 54, 'Name3': 50}
预期输出(0 可能是 np.nan):
y1 y2 y3
Name1 x1 0.0 0.0 54
x2 0.0 0.0 0.0
x3 0.0 0.0 0.0
x4 0.0 0.0 0.0
Name2 x1 0.0 0.0 0.0
x2 0.0 0.0 0.0
x3 0.0 0.0 0.0
x4 0.0 0.0 0.0
Name3 x1 0.0 0.0 50
x2 0.0 0.0 0.0
x3 0.0 0.0 0.0
x4 0.0 0.0 0.0
Name4 x1 0.0 0.0 0.0
x2 0.0 0.0 0.0
x3 0.0 0.0 0.0
x4 0.0 0.0 0.0
【问题讨论】:
标签: python pandas multi-index