当前位置: 首页 > 面试题库 >

python pandas,某些列到行[重复]

阙辰龙
2023-03-14
问题内容

这个问题已经在这里有了答案

熊猫将一些列转换为行 (4个答案)

2年前关闭。

我有一个熊猫数据框,有4行4列-这是asimple版本:

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 Alligng-因此它看起来像这样:

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:没有要聚合的数字类型

接下来,我想基于A值拆分数据帧,但是我认为.groupby命令可能会照顾好它


问题答案:

您正在寻找的melt功能是

 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行4列-这里是一个简单的版本: 我想做的是把它转换成一个2*8的数据帧,每个数组都有B、C和D——所以它看起来像这样: 在阅读熊猫文档时,我尝试了以下方法: 但是给了我一个错误,我无法识别源(以 DataError:没有要聚合的数字类型 ) 接下来,我想根据一个值分割数据帧,但我认为.groupby命令可能会处理它

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

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

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

  • 有一个数据框,一列,例如“cost”,有一些零/空条目,我想保留“cost”列不为零/空的行。如何在熊猫身上做到这一点?

  • 问题内容: 我正在尝试从具有相同的第一项和第三项但仅保留第一项的列表中删除列表。示例列表和输出: 由于原始列表包含数百万个列表,因此我编写的代码需要很长时间才能执行。 如何改善代码?提前致谢。 问题答案: 改进的版本: 更改为: 使用的,这使得查找更快。 转成元组,因为没有必要存储唯一的第一和第三元素列表。 减少的函数查找也可以加快代码的速度。