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