为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 masked pandas DataFrame 列设置为列表列

如何将 masked pandas DataFrame 列设置为列表列

月关宝盒 2023-07-27 09:58:01
如何将列中的某些单元格设置为列表列表中的列表,其中列表列表的长度与单元格的数量相同?运行我尝试的部分时,出现以下错误:ValueError:使用 ndarray 设置时必须具有相等的 len 键和值我想要的 DataFrame,如下明确定义,desired如下所示:   include   array0     True  [1, 2]1    False     NaN2    False     NaN3     True  [3, 4]4    False     NaN尝试过的代码:import pandas as pd# This is what I trieda = pd.DataFrame({'include': [True, False, False, True, False]})a.loc[a['include'], 'array'] = [[1, 2], [3, 4]]# This is what I wantdesired = pd.DataFrame({'include': [True, False, False, True, False],                        'array': [[1, 2], np.nan, np.nan, [3, 4], np.nan]})
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

不太确定你想做什么,但你可以将其转换为 apandas.Series并对齐索引:


a.loc[a['include'], 'array'] = pd.Series([[1, 2], [3, 4]], index=[0, 3])


print(a)

   include   array

0     True  [1, 2]

1    False     NaN

2    False     NaN

3     True  [3, 4]

4    False     NaN

要保持索引的分配通用而不是硬编码,请使用:


a.loc[a['include'], 'array'] = pd.Series([[1, 2], [3, 4]], a[a['include']].index)


查看完整回答
反对 回复 2023-07-27
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信