我正在寻找一种有效的方法来从从 a 创建的字典列表中删除零pd.DataFrame以以下示例为例:
df = pd.DataFrame([[1, 2], [0, 4]], columns=['a', 'b'], index=['x', 'y'])
df.to_dict('records')
[{'a': 1, 'b': 2}, {'a': 0, 'b': 4}]
Run Code Online (Sandbox Code Playgroud)
我想要的是:
[{'a': 1, 'b': 2}, {'b': 4}]
Run Code Online (Sandbox Code Playgroud)
我有一个非常大的稀疏数据帧,存储所有零效率低下。因为数据帧很大,我正在寻找比循环字典的数据帧和删除零更快的解决方案,例如以下工作但非常慢并且使用大量内存。
new_records = []
for record in df.to_dict('records'):
new_records.append(dict((k, v) for k, v in record.items() if v))
Run Code Online (Sandbox Code Playgroud)
有没有更有效的方法或方法?
使用列表理解
[r[r != 0].to_dict() for _, r in df.iterrows()]
[{'a': 1, 'b': 2}, {'b': 4}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
569 次 |
| 最近记录: |