python中的流线型列
我花了几周的时间来建造以下建筑: 我的数据帧如下所示: 我想构建以下内容: 我尝试了以下方法,但不起作用:python中的流线型列,python,pandas,Python,Pandas,我花了几周的时间来建造以下建筑: 我的数据帧如下所示: 我想构建以下内容: 我尝试了以下方法,但不起作用: formatted_df = pd.melt(dfNull, ["registro"], var_name="Atributo", value_name="Valor") 尝试指定id\u vars和值\u vars >>> df = pd.DataFr
formatted_df = pd.melt(dfNull,
["registro"],
var_name="Atributo",
value_name="Valor")
尝试指定
id\u vars
和值\u vars
>>> df = pd.DataFrame({'ID':range(5),'A':range(0,5),'B':['Z','Y','X','W','V']})
>>> df
ID A B
0 0 0 Z
1 1 1 Y
2 2 2 X
3 3 3 W
4 4 4 V
>>> df.melt(id_vars=['ID'], value_vars=['A','B'], var_name='var_name', value_name='val_name')
ID var_name val_name
0 0 A 0
1 1 A 1
2 2 A 2
3 3 A 3
4 4 A 4
5 0 B Z
6 1 B Y
7 2 B X
8 3 B W
9 4 B V
搜索pandas.melt链接,未找到dfNull选项
我发现了一个类似的代码:
formatted_df = pd.melt(df,["religion"],var_name="income",value_name="freq")
formatted_df = formatted_df.sort_values(by=["religion"])
formatted_df.head(10)
基于此链接
尝试以这种方式格式化代码,看看从“dfNull”到“df”的更改是否有效
我认为您的问题是“Registro”在数据帧中大写,但在melt命令中没有大写 这似乎有效:
df = pd.DataFrame({'Registro': [1, 2, 3],
'100 mucho actividad': [None, None, 1],
'120 mil conformar': [1, 1, None],
'190 solo recibir': [1, 1, 1]})
这将生成以下数据帧:
Registro 100 mucho actividad 120 mil conformar 190 solo recibir
0 1 NaN 1.0 1
1 2 NaN 1.0 1
2 3 1.0 NaN 1
现在我们可以melt(我使用“Registro”作为新数据帧的索引)还需要注意的是,我删除了产生结果的NaN列,并对索引进行排序,使其符合您期望的顺序
formatted_df = pd.melt(df,
["Registro"],
var_name="Atributo",
value_name="Valor").dropna().set_index('Registro')
formatted_df.sort_index(inplace=True)
formatted_df
结果:
Atributo Valor
Registro
1 120 mil conformar 1.0
1 190 solo recibir 1.0
2 120 mil conformar 1.0
2 190 solo recibir 1.0
3 100 mucho actividad 1.0
3 190 solo recibir 1.0
请将您的数据添加为文本,以便我们可以复制和粘贴。请勿张贴代码/数据的图片。请在使用前检查标签的说明,在这种情况下,不必进行整理
Atributo Valor
Registro
1 120 mil conformar 1.0
1 190 solo recibir 1.0
2 120 mil conformar 1.0
2 190 solo recibir 1.0
3 100 mucho actividad 1.0
3 190 solo recibir 1.0