python - 如何在 Pandas 数据框中用 0 填充多个列表?
问题描述
我有 Pandas 数据框,我试图在那些缺少数字的列表中添加 0。在下面的数据框中,列表的最大长度为 4,位于第 3 位。因此,我将在其余列表中添加 0。
输入:
Lists
0 [158, 202]
1 [609, 405]
2 [544, 20]
3 [90, 346, 130, 202]
4 [6]
输出:
Lists
0 [158, 202, 0, 0]
1 [609, 405, 0, 0]
2 [544, 20, 0, 0]
3 [90, 346, 130, 202]
4 [6, 0, 0, 0]
解决方案
您可以使用 0 转换为数据框和 fillna,然后将 agg 转换为列表。
df.assign(New=pd.DataFrame(df['Lists'].tolist()).fillna(0).astype(int).agg(list,1))
Lists New
0 [158, 202] [158, 202, 0, 0]
1 [609, 405] [609, 405, 0, 0]
2 [544, 20] [544, 20, 0, 0]
3 [90, 346, 130, 202] [90, 346, 130, 202]
4 [6] [6, 0, 0, 0]
#df['Lists'] = pd.DataFrame(df['Lists'].tolist()).fillna(0).astype(int).agg(list,1)
或者按照@ShubhamSharma 的建议,您也可以致电to_numpy().tolist()
:
df.assign(New=pd.DataFrame([*df['Lists']]).fillna(0).astype(int).to_numpy().tolist())
推荐阅读
- pdf - 在同一个 pdf 文档中混合单工和双工
- docusignapi - DocuSign API - 强制绘制签名
- python - 如何在 Dash Plotly 中居中 html.H1
- g++ - 如何在这个 g++ 中应用 C++17 标准?
- r - 如何将自定义函数加载到 R 中的 foreach 循环中?
- flutter - websocket不接收事件
- c++ - 如何使用 cmake 构建系统将仅标头库添加到项目中?
- php - 使用 PHP 在文件中搜索 ANSI 特殊字符
- python-asyncio - 如何调用阻塞的异步代码并到达下一行?
- google-api - 删除“由 Google 翻译的机器”