gpt4 book ai didi

python - 转置列 Pandas Dataframes 后合并列

转载 作者:行者123 更新时间:2023-11-28 22:30:51 25 4
gpt4 key购买 nike

假设我有一组数据框

df1 是

   ID       C1
0 0 0.000000
1 1 0.538516
2 2 0.509902
3 3 0.648074
4 4 0.141421

df2 是

  ID        C1
0 0 0.538516
1 1 0.000000
2 2 0.300000
3 3 0.331662
4 4 0.608276

df3 是

  ID        C1
0 0 0.509902
1 1 0.300000
2 2 0.000000
3 3 0.244949
4 4 0.509902

然后我继续转置这三个数据框。

df1 = df1.T
df2 = df2.T
df3 = df3.T

现在数据框是:

df1 是

          0         1         2         3         4
ID 0 1 2 3 4
C1 0 0.538516 0.509902 0.648074 0.141421

df2 是:

                 0         1    2         3         4
ID 0 1 2 3 4
C1 0.538516 0 0.3 0.331662 0.608276

df3 是:

                 0    1    2         3         4
ID 0 1 2 3 4
C1 0.509902 0.3 0 0.244949 0.509902

我能以某种方式组合所有数据框吗

0            1         2         3         4
0 0.538516 0.509902 0.648074 0.141421
0.538516 0 0.3 0.331662 0.608276
0.509902 0.3 0 0.244949 0.509902

然后单独对行进行排序,以便对结果数据框中的每一行进行排序?

例如,带有排序行的数据框将是

0  0.141421  0.509902  0.538516  0.648074
0 0.3 0.331662 0.538516 0.608276
0 0.244949 0.3 0.509902 0.509902

我在转置数据帧后遇到了 concat 问题。

感谢所有帮助

最佳答案

更新: 已排序数据集且未转置:

In [64]: pd.DataFrame([np.sort(x['C1'].values) for x in dfs], columns=d1.index)
Out[64]:
0 1 2 3 4
0 0.0 0.141421 0.509902 0.538516 0.648074
1 0.0 0.300000 0.331662 0.538516 0.608276
2 0.0 0.244949 0.300000 0.509902 0.509902

解释:

In [67]: d1
Out[67]:
ID C1
0 0 0.000000
1 1 0.538516
2 2 0.509902
3 3 0.648074
4 4 0.141421

In [68]: d1['C1'].values
Out[68]: array([ 0. , 0.538516, 0.509902, 0.648074, 0.141421])

In [69]: np.sort(d1['C1'].values)
Out[69]: array([ 0. , 0.141421, 0.509902, 0.538516, 0.648074])

In [70]: [np.sort(x['C1'].values) for x in dfs]
Out[70]:
[array([ 0. , 0.141421, 0.509902, 0.538516, 0.648074]),
array([ 0. , 0.3 , 0.331662, 0.538516, 0.608276]),
array([ 0. , 0.244949, 0.3 , 0.509902, 0.509902])]

现在我们可以从已排序的 NumPy 数组列表中创建一个 DataFrame,指定 d1.index 作为列:

In [71]: pd.DataFrame([np.sort(x['C1'].values) for x in dfs], columns=d1.index)
Out[71]:
0 1 2 3 4
0 0.0 0.141421 0.509902 0.538516 0.648074
1 0.0 0.300000 0.331662 0.538516 0.608276
2 0.0 0.244949 0.300000 0.509902 0.509902

关于python - 转置列 Pandas Dataframes 后合并列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41925808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com