如何在python数据框架中创建n-m映射表?

如何在python数据框架中创建n-m映射表?,python,pandas,dataframe,mapping,Python,Pandas,Dataframe,Mapping,我有一个表,有几行和几列。我的表的索引/行是一个类别,如果我的表的最后一行中的索引/行有一些ID,那么它就是一个类别。有没有一种方法可以将当前列的ID写入表中每个不为null的单元格 表(已在生成的数据帧中):      1.     2.    3.    4.    5.    6.    7.    八, 九, 3161409 50342165 949138 楠 147466 155307   楠   3575062  12 楠   楠   楠   楠  

我有一个表,有几行和几列。我的表的索引/行是一个类别,如果我的表的最后一行中的索引/行有一些ID,那么它就是一个类别。有没有一种方法可以将当前列的ID写入表中每个不为null的单元格

表(已在生成的数据帧中):

     1.     2.    3.    4.    5.    6.    7.    八,

九, 3161409 50342165 949138 楠 147466 155307   楠   3575062 
12 楠   楠   楠   楠   楠   楠   楠   南
身份证 m90   v15   o1506   u55   m1701  m174   m90   m90

假设我想在每个不是“NaN”的单元格中都有“m90”。有没有办法做到这一点

这是所需的输出:

     1.     2.    3.    4.    5.    6.    7.    八,

九, m90   v15   o1506   楠  m1701  m174   楠   m90 
12 楠   楠   楠   楠   楠   楠   楠   南
身份证 m90   v15   o1506   u55   m1701  m174   m90   m90


提前感谢。

我们可以创建一个小函数,将pandas.Series作为输入,并应用于数据帧的每一列

我创建了这个类似于你的玩具数据框

import numpy as np
import pandas as pd

df = pd.DataFrame({
    '1': [123, np.nan, 'm90'],
    '2': [np.nan, np.nan, 'v15'],
    '3': [123445, 4, 'o1506'],
    '4': [np.nan, 23, 'u55']
}, index=[9, 12, 'ids'])
然后


您好,您能更准确地描述什么是您的输入数据帧,什么是您的预期输出吗?其中的每一个示例都有助于帮助您您好,我的输入数据框由8列和1250行组成,为了简单起见,缩小为3行。预期的输出应该是,索引为“9”的整行应该替换为索引为“id”的行的值。这应该只在值不是nan时发生。不幸的是,我仍然不太清楚。我建议你通过显示你想要的输出应该是什么样子来编辑你的问题(即使只有三行),我希望我的问题通过编辑的问题变得更清楚。谢谢你的打扰,谢谢你说得更准确。我在下面回答了你,请检查一下,看看它是否有效。非常感谢!这几天我一直很头疼!不客气!你看,只需添加一个示例输入和所需的输出,问题就更容易理解和重现:)
def replace_non_nulls(s):
    # 's' is a series
    replacement = s.loc['ids']
    s.loc[s.notna()] = replacement
    return s

df.apply(replace_non_nulls)
#        1    2      3    4
# 9    m90  NaN  o1506  NaN
# 12   NaN  NaN  o1506  u55
# ids  m90  v15  o1506  u55