我想在列like in this diagonal correlation matrix之间创建关联数据。
我的数据当前是这种格式:
我需要将其转换为以下格式:
如何将T和G中的类别合并到“样本”列中?
感谢您的帮助!
编辑:
print(df.dtypes)
输出:
T
int64
Group
object
Sample1
float64
Sample2
int64
Sample3
float64
dtype: object
print(df.index)
输出:
Int64Index([0, 1, 3, 6, 16, 18, 19, ..., 52], dtype='int64')
print(type(df))
输出:
<class 'pandas.core.frame.DataFrame'>
答案 0 :(得分:1)
假设原始数据帧称为df,列为T,G和Sample *,下面的代码将准备一个具有所需格式的新数据帧:
list_T = list(df['T'].unique())
list_G = list(df['G'].unique())
list_Samples = list(df.drop(['T', 'G'], axis = 1).columns)
cols = []
data = []
for s in list_Samples:
for g in list_G:
for t in list_T:
cols.append(s + ' T' + str(t) + ' ' + g)
data.append(list(df[s][(df['T'] == t) & (df['G'] == g)]))
df2 = pd.DataFrame(data = np.array(data).T, columns = cols)
原始数据框:
已转换的数据框:
答案 1 :(得分:0)
放置数据链接会更容易。我不想开您的数据。请尝试使用PANDAS-Crosstab。