我有一个熊猫数据框,有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命令可能会处理它
你要找的是融化
函数
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)。 如: 预期结果: