我有一些像这样的数据框:
A B C
0
4
5
6
7
7
6
5
A中值 的 可能范围仅为0到7 。
另外,我有一个8个元素的列表,如下所示:
List=[2,5,6,8,12,16,26,32] //There are only 8 elements in this list
如果A列中的元素是 n ,我需要将List中的第 n 个元素插入新列,例如’D’。
如何一口气做到这一点而又不遍历整个数据框?
产生的数据框如下所示:
A B C D
0 2
4 12
5 16
6 26
7 32
7 32
6 26
5 16
注意:数据框很大,迭代是最后一个选项。但是如果需要的话,我也可以将其他数据结构(如dict)排列在“ List”中的元素上。
IIUC,如果将您(不幸的是命名为)List
制成ndarray
,则可以简单地自然地对其进行索引。
>>> import numpy as np
>>> m = np.arange(16)*10
>>> m[df.A]
array([ 0, 40, 50, 60, 150, 150, 140, 130])
>>> df["D"] = m[df.A]
>>> df
A B C D
0 0 NaN NaN 0
1 4 NaN NaN 40
2 5 NaN NaN 50
3 6 NaN NaN 60
4 15 NaN NaN 150
5 15 NaN NaN 150
6 14 NaN NaN 140
7 13 NaN NaN 130
在这里,我建立了一个新的m
,但是如果您使用的话m = np.asarray(List)
,同样的事情也应该起作用:in中的值df.A
将挑选出适当的元素m
。
请注意,如果您使用的是旧版本的numpy
,则可能不得不改用-m[df.A.values]
过去,numpy
与他人的配合不佳,并且进行某些重构会pandas
引起一些麻烦。现在情况有所改善。
问题内容: 我试图基于一个的数据创建“ n” 。我正在检查in的Integer值,并循环执行sql语句以创建与列中一样多的“ n” 。 这是我的代码: 我需要创建“ n”,但我不知道如何在循环之前声明类型并在for内填充。 现有数据类型: 新的数据类型: 问题答案: 您可以创建一个可变列表并填充它: 但是更好的方法(不使用可变数据结构)是将整数列表 映射 到DataFrames列表中:
很容易将列表列表转换为数据帧: 但是我如何将df转换回列表列表呢?
假设我有一个数据框 和列名称列表 如何将新列添加到以零为值的数据帧中?
问题内容: 我想像这样向数据框添加列“ D”: 根据以下字典: 因此结果数据框显示为: 到目前为止,我尝试了该方法,但无法弄清楚它如何与Dictionary一起工作。 问题答案: 调用并传递字典,这将执行查找并返回该键的关联值:
我试图从包含列表的json中提取一个字段,然后将该列表附加到数据帧中,但遇到了一些不同的错误。 我想我可以将其写入csv,然后用Pandas读取csv,但我尽量避免写入任何文件。我知道我也可以使用StringIO生成csv,但这存在空字节问题。替换这些将是(我认为)另一个逐行的步骤,这将进一步延长脚本完成所需的时间。。。我正在对一个返回成千上万个结果的查询运行此操作,因此保持它的快速和简单是一个优
我有一个如下的数据帧: 我想将其转换为如下内容: B中重复的值是列名称,其值在C列中。我希望它们是数据帧的列 事实上,数据集是通过展平一棵树创建的,其中有更多的列,每个列都是一个内部节点。第一列是根,C是叶 以下是我的一些尝试: 然而,它不起作用。