我想将pandas列的值设置为字符串列表。但是,我这样做没有成功,因为大熊猫将列值视为可迭代值,并且得到了:ValueError: Must have equal len keys and value when setting with an iterable
。
这是MWE
>> df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
>> df
col1 col2
0 1 4
1 2 5
2 3 6
>> df['new_col'] = None
>> df.loc[df.col1 == 1, 'new_col'] = ['a', 'b']
ValueError: Must have equal len keys and value when setting with an iterable
我试图将设置dtype
为list
using df.new_col = df.new_col.astype(list)
,但这也不起作用。
我想知道什么是正确的方法。
编辑
这里提供的答案:Python的大熊猫插入列表进入细胞使用at
并没有为我工作,无论是。
不容易,一种可能的解决方案是创建助手Series
:
df.loc[df.col1 == 1, 'new_col'] = pd.Series([['a', 'b']] * len(df))
print (df)
col1 col2 new_col
0 1 4 [a, b]
1 2 5 NaN
2 3 6 NaN
另一个解决方案,如果也需要将缺失值设置为空列表,则使用列表理解:
#df['new_col'] = [['a', 'b'] if x == 1 else np.nan for x in df['col1']]
df['new_col'] = [['a', 'b'] if x == 1 else [] for x in df['col1']]
print (df)
col1 col2 new_col
0 1 4 [a, b]
1 2 5 []
2 3 6 []
但是随后,您将失去使用保存在连续内存块中的NumPy数组所伴随的矢量化功能。
我有以下布尔值表: 我想创建一个具有相同索引的新数据帧,但每行都有前一列的前三个 True 列名。 如果一行少于三个真值,则新数据帧将具有空值。
例如,我有一个数据框架: 我希望在时将value 1替换为。所以我想要的结果是: 我可以通过以下代码实现它: 我认为数据量大的时候速度太慢了。我通过<code>来尝试它。loc,但我不知道如何设置值。 我如何通过<code>实现它。loc或其他简单方法?提前谢谢。
问题内容: 我已经看到了将一个列/系列分解为Pandas数据框的多个列的主题的几种变体,但是我一直在尝试做点事情,而实际上并没有成功地使用现有方法。 给定这样的一个DataFrame: 我想将系列中的项目转换为以值作为值的列,如下所示: 我觉得这应该是相对简单的事情,但是由于卷积水平的提高,我已经为此花了几个小时不停地努力,但没有成功。 问题答案: 有几种方法: 使用: 使用: 使用后跟:
我有一个类似下面的系列, 我想根据list(explode)中的值将此单个系列转换为dataframe。 预期产出: 我试过了 我上面的代码可以完成这项工作,尽管我正在寻找解决这个问题的好方法。
我已经看到了将一个列/系列分解成熊猫数据框架的多个列这一主题的一些变体,但是我一直在尝试做一些事情,但是现有的方法并没有真正成功。 给定如下数据帧: 我想将系列中的项目转换为列,以 值作为值,如下所示: 我觉得这应该是一个相对简单的问题,但我已经为此努力了几个小时,不断增加的复杂程度,但没有成功。
我有一个字段在熊猫DataFrame被导入为字符串格式。它应该是日期时间变量。如何将其转换为日期时间列,然后根据日期进行筛选。 示例: 数据帧名称:原始数据
问题内容: 我知道这个问题有很多主题,但是没有一种方法适合我,因此我将发布有关我的具体情况的信息 我有一个看起来像这样的数据框: 我想做的是将“性别”列中的全0替换为“女”,并将所有1替换为“男”,但是当我使用上面的代码时,数据框中的值似乎没有变化 我是否使用了replace()错误?还是有更好的方法进行条件值替换? 问题答案: 是的,您使用的是错误的,默认情况下不是就地操作,它会返回替换的数据框
我在Pycharm中使用mac OS Sierra 10.12.3和Pycharm社区版2016.3.2我在使用Python 2.7.11并尝试运行以下程序 导入pandas作为pd它给我错误,说没有名为pandas的模块 所以我去了终端,输入了pip 以下是回应 Brians MBP:~Brians$pip安装pandas要求已满足:pandas in./miniconda3/lib/pytho