我已经看到了将一个列/系列分解成熊猫数据框架的多个列这一主题的一些变体,但是我一直在尝试做一些事情,但是现有的方法并没有真正成功。
给定如下数据帧:
key val
id
2 foo oranges
2 bar bananas
2 baz apples
3 foo grapes
3 bar kiwis
我想将键
系列中的项目转换为列,以 val
值作为值,如下所示:
foo bar baz
id
2 oranges bananas apples
3 grapes kiwis NaN
我觉得这应该是一个相对简单的问题,但我已经为此努力了几个小时,不断增加的复杂程度,但没有成功。
In [1923]: df.set_index([df.index, 'key'])['val'].unstack()
Out[1923]:
key bar baz foo
id
2 bananas apples oranges
3 kiwis None grapes
或者,简化的< code>groupby
In [1926]: df.groupby([df.index, 'key'])['val'].first().unstack()
Out[1926]:
key bar baz foo
id
2 bananas apples oranges
3 kiwis None grapes
有几种方法:
使用.pivot_table
:
>>> df.pivot_table(values='val', index=df.index, columns='key', aggfunc='first')
key bar baz foo
id
2 bananas apples oranges
3 kiwis NaN grapes
使用<代码>。枢轴:
>>> df.pivot(index=df.index, columns='key')['val']
key bar baz foo
id
2 bananas apples oranges
3 kiwis NaN grapes
使用<code>。groupby后跟。取消堆叠
:
>>> df.reset_index().groupby(['id', 'key'])['val'].aggregate('first').unstack()
key bar baz foo
id
2 bananas apples oranges
3 kiwis NaN grapes
问题内容: 我已经看到了将一个列/系列分解为Pandas数据框的多个列的主题的几种变体,但是我一直在尝试做点事情,而实际上并没有成功地使用现有方法。 给定这样的一个DataFrame: 我想将系列中的项目转换为以值作为值的列,如下所示: 我觉得这应该是相对简单的事情,但是由于卷积水平的提高,我已经为此花了几个小时不停地努力,但没有成功。 问题答案: 有几种方法: 使用: 使用: 使用后跟:
我有一个 CSV 文件,其中包含名称和电子邮件列。我的目标是映射一个新列,即将列名分成两列,名字和姓氏。以下示例表。 将 老实说,我目前只能阅读关于熊猫的文件,我已经阅读了一些关于熊猫地图的文章,但是我还没有找到合适的。 谢谢。
问题内容: 我知道这个问题有很多主题,但是没有一种方法适合我,因此我将发布有关我的具体情况的信息 我有一个看起来像这样的数据框: 我想做的是将“性别”列中的全0替换为“女”,并将所有1替换为“男”,但是当我使用上面的代码时,数据框中的值似乎没有变化 我是否使用了replace()错误?还是有更好的方法进行条件值替换? 问题答案: 是的,您使用的是错误的,默认情况下不是就地操作,它会返回替换的数据框
我有以下布尔值表: 我想创建一个具有相同索引的新数据帧,但每行都有前一列的前三个 True 列名。 如果一行少于三个真值,则新数据帧将具有空值。
我有这个原始数据帧: > 可能有多行具有相同的日期时间,如示例所示。 列< code>column中可能不止有两个不同的值,这是一个简化的示例。 所有值都是整数。 我想创建这个新的数据框: 需要采取的行动: > 对于列<code>列<code>中的每个唯一值,创建一个新列,该值作为列的名称。 对于每个唯一的日期时间,创建一个新行。 根据原始列填充值,如果没有值,则使用 NaN。 创建原始数据帧的代
我有以下熊猫系列 我需要将此更正为csv。但我需要列表中的每个项目作为单独的列。例如:在第一行中,1、11283、1、5应该是单独的列