例如。
数据 A:
我希望将它“收集”到这里:
y female male
1 2 3
4 5 6
我希望将它“收集”到这里:
y gender value
1 female 2
1 male 3
4 female 5
4 male 6
在R中很容易实现,那么Python的pandas呢?
你应该尝试使用melt函数,在给定的数据中,它的相反操作称为cast函数,这些melt和cast函数与R语言的reshape2包非常相似:
import pandas as pd
pd.melt(dt, id_vars="y")
其中dt是您的输入表
输出:
#y variable value
#1 female 2
#4 female 5
#1 male 3
#4 male 6
from datar import f
from datar.tibble import tribble
from datar.tidyr import pivot_longer
df = tribble(
f.y, f.female, f.male,
1, 2, 3,
4, 5, 6
)
pivot_longer(df, [f.female, f.male], names_to="gender")
# y name value
# 0 1 female 2
# 1 4 female 5
# 2 1 male 3
# 3 4 male 6
我是datar软件包的作者。如果您在使用过程中有任何问题,请随时提交问题。
汇集
df1=df.melt(id_vars='y')
df1
传播
df2=df1.pivot(index='y', columns='variable')
df2
#Import pandas module
import pandas as pd
# Define the dataframe
DF = pd.DataFrame({'y': [1,4], 'female': [2,5], 'male': [3,6]})
# Gather/melt the data frame
pd.melt(DF, id_vars='y', value_vars=['female', 'male'],var_name='gender',
value_name='value')
y gender value
0 1 female 2
1 4 female 5
2 1 male 3
3 4 male 6