等价物';价差';和';聚集';python/pandas中的R/tidyverse?
比如说。 数据A: 我想把它“收集”到这个:等价物';价差';和';聚集';python/pandas中的R/tidyverse?,python,pandas,Python,Pandas,比如说。 数据A: 我想把它“收集”到这个: y gender value 1 female 2 1 male 3 4 female 5 4 male 6 在R中很容易。python pandas呢?您应该尝试熔化,在给定的数据中,相反(扩散版本称为cast),这些熔化和铸造函数与R的重塑2非常相似: import pandas as pd pd.melt(dt, id_vars="y") 其中dt是您的输入表 输出: #y variable value #1 fema
y gender value
1 female 2
1 male 3
4 female 5
4 male 6
在R中很容易。python pandas呢?您应该尝试熔化,在给定的数据中,相反(扩散版本称为cast),这些熔化和铸造函数与R的重塑2非常相似:
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
试试熊猫的融化法(pd.melt)
使用id\u vars定义主聚集/熔化变量value\u vars定义您的值变量var_name定义值变量的标题;和value\u name定义实际值的标题
看看这个例子:
#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
收集
df1=df.melt(id_vars='y')
df1
价差
df2=df1.pivot(index='y', columns='variable')
df2
这个怎么样:
从数据导入f
从datar.tibble导入tribble
从datar.tidyr导入pivot\u
df=tribble(
f、 y,f。女性,f。男性,
1, 2, 3,
4, 5, 6
)
轴长(df,[f.女性,f.男性],姓名至=“性别”)
#y名称值
#0 1女性2
#1 4女5
#2 1男3
#3 4男6
我是这个包裹的作者。如果您对使用它有任何疑问,请随时提交问题。我已经找到您了。但仍然存在一个问题。假设有很多变量:x1,x2…x50,y1,y2。然后我将y1和y2收集到一列中。代码是:pd.melt(dt,id_vars=['x1','x2'…'x50'],value_vars=['y1','y2']。id_变量的输入太多,在R中不是这样的。您有更舒适的方法输入id_变量吗?@Bin您可以使用melt和cast执行所有操作,这些都是旧函数,当您提出问题时,请您询问所有问题,如果您的问题是R use data.table中的性能,也如建议的那样。请参阅此链接:而且,您也没有如果必须键入,可以使用df.columns.tolist()保存列名,将其保存到separate对象中并执行操作
df2=df1.pivot(index='y', columns='variable')
df2