当前位置: 首页 > 知识库问答 >
问题:

python,某些列到行[重复]

景志
2023-03-14

我有一个熊猫数据框,有4行4列-这里是一个简单的版本:

import pandas as pd
import numpy as np
rows = np.arange(1, 4, 1)
values = np.arange(1, 17).reshape(4,4)
df = pd.DataFrame(values, index=rows, columns=['A', 'B', 'C', 'D'])

我想做的是把它转换成一个2*8的数据帧,每个数组都有B、C和D——所以它看起来像这样:

1  2 
1  3
1  4
5  6
5  7
5  8
9  10
9  11
9  12
13 14
13 15
13 16

在阅读熊猫文档时,我尝试了以下方法

df1 = pd.pivot_table(df, rows = ['B', 'C', 'D'], cols = 'A')

但是给了我一个错误,我无法识别源(以

DataError:没有要聚合的数字类型

)

接下来,我想根据一个值分割数据帧,但我认为.groupby命令可能会处理它

共有1个答案

羊柏
2023-03-14

你要找的是融化函数

 pd.melt(df,id_vars=['A']) 

     A variable  value
0    1        B      2
1    5        B      6
2    9        B     10
3   13        B     14
4    1        C      3
5    5        C      7
6    9        C     11
7   13        C     15
8    1        D      4
9    5        D      8
10   9        D     12
11  13        D     16

然后需要根据A进行最终排序

 pd.melt(df,id_vars=['A']).sort('A')  

      A variable  value
 0    1        B      2
 4    1        C      3
 8    1        D      4
 1    5        B      6
 5    5        C      7
 9    5        D      8
 2    9        B     10
 6    9        C     11
 10   9        D     12
 3   13        B     14
 7   13        C     15
 11  13        D     16

注意:pd.DataFrame.sort已不建议使用pd。DataFrame.sort_values

 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 熊猫将一些列转换为行 (4个答案) 2年前关闭。 我有一个熊猫数据框,有4行4列-这是asimple版本: 我想做的是将其转换为2 * 8数据帧,并对每个数组使用B,C和D Alligng-因此它看起来像这样: 在阅读熊猫文档时,我尝试了以下方法: 但给我一个错误,我无法识别来源(结尾为 DataError:没有要聚合的数字类型 ) 接下来,我想基于A值

  • 问题内容: 这个问题已经在这里有了答案 : 插入``值(从中选择’‘) (26个答案) 3年前关闭。 我正在使用SQL Server 2005。 我有一个3列的table1。和table2有4列。 我想将记录从表1插入到表2中。 但是我不想从table2插入column1中。 我想从column2开始插入。 我能做些什么?谢谢… 问题答案:

  • 假设我有下面的。我想组合价格列和值列,以便所有价格都在一列中,所有卷都在另一列中。我还想要标识价格级别的第三列。例如,、和。 这就是最终的df应该是什么样子: 我尝试使用,我认为几乎有正确的答案。 这就是熔融时部分df的样子: 上面的问题是,数量和价格在同一列中,但我希望它们在两个单独的列中。 我使用了正确的函数吗?

  • 是否可以只合并一些列?我有一个数据帧df1和列x、y、z,df2和列x、a、b、c、d、e、f等等。 我想合并x上的两个数据帧,但我只想合并df2. a、df2.b列——而不是整个数据帧。 结果将是一个包含x、y、z、a、b的数据帧。 我可以合并然后删除不需要的列,但似乎有更好的方法。

  • 所以我的数据集有一些信息,按业务n日期如下: 我需要以下格式的数据:我如何转换它。我不想在我的输出数据集中使用多级 我尝试了以下语法: 我得到的结果如下: 当我打印列时,它不会将LOB显示为列。我的最终数据帧还应该包括业务,日期字段作为列,以便我可以加入这个数据帧与另一个业务数据帧

  • 表-col_pk、col1、col2、col3、col4、col_date_更新 此表中有些行的col2和col3列值重复。我想保持那些列的列更新为最新(max)。 如: 预期结果: