大熊猫分开堆放的桌子

时间:2019-03-14 10:39:47

标签: python-3.x pandas dataframe pandas-groupby

我有一个堆积表的excel文件,在Pandas中看起来像这样:

d = {'col1': ['flow', 'A', 'B', 'C', 'handle', 'bs', 'cd', 'fg'],
'vals': [np.nan, 1, 2, np.nan, np.nan, 4, np.nan, 6]}
df = pd.DataFrame(d)

在总行中,我们有一个定义的字段,类似于一个小表的标题(此处为句柄)。

我想将标题和标题下的行放在单独的词典中。我的想法是使用标题(流和句柄)的名称创建索引列,然后使用pd.groupby()创建dict。 (假设我已经知道header_name = [flow, handle] 什么是达到我的目标并获得数据框架的最佳方法?

idx = ['flow', 'flow', 'flow', 'flow', 'handle', 'handle', 'handle', 'handle']
df.index = idx
df

1 个答案:

答案 0 :(得分:2)

IIUC,您可以执行以下操作:

header_name = ['flow', 'handle']
df.index=df.col1[df.col1.isin(header_name)].reindex(df.index).ffill()
print(df.rename_axis(None))

          col1  vals
flow      flow   NaN
flow         A   1.0
flow         B   2.0
flow         C   NaN
handle  handle   NaN
handle      bs   4.0
handle      cd   NaN
handle      fg   6.0