我正在尝试使用Pandas Dataframe(python36)有效地创建成对比较
数据框具有X列数,其中一列具有标签:“ set” 整个数据帧具有许多由[Set1,Set2 ....]表示的“集合”,每个集合的大小为3-26行。 给定集合中的每一行都是唯一的,用“子集”表示,可以是[“ a”,“ b”,“ c” ....“ z”]。
[set, subset, var1, var2 ... varN]
[1, a, "a1","a2" ... "aN"]
[1, b, "b1","b2" ... "bN"]
[1, c, "c1","c2" ... "cN"]
[2, a, "a1","a2" ... "aN"]
[2, b, "b1","b2" ... "bN"]
....
我想创建一个数据框它具有2倍的列数,本质上是具有[a,b,c]的Set1的
Set1, columns for A, columns for A
Set1, columns for A, columns for B
Set1, columns for A, columns for C
Set1, columns for B, columns for A
Set1, columns for B, columns for B,
Set1, columns for B, columns for C,
Set1, columns for C, columns for A,
Set1, columns for C, columns for B,
Set1, columns for C, columns for C,
Set2, ...
我目前正在使用以下版本:
for name, group in dataframe.groupby('set'):
group_copy = group.copy()
# rename group columns to include v1_
# rename group_copy columns to include v2_
# MAGIC
new_dataframe = pd.concat([group, group_copy])
yield new_dataframe
# and then concating a "large dataframe"
但是这太慢了。我的数据框有30万行和6万个“集合”。 有没有办法使它真正有效?
诚然,我要进行大量的行。