python-3.x - 在遍历行并创建字典时过滤数据框列
问题描述
我在电子表格中有以下数据表:
Name Description Value
foo foobar 5
baz foobaz 4
bar foofoo 8
我正在阅读电子表格并将数据作为数据框传递。
我需要按照特定模式将此数据表转换为 json。
我有以下脚本:
for index, row in df.iterrows():
if row['Description'] == 'foofoo':
print(row.to_dict())
返回:
{'Name': 'bar', 'Description': 'foofoo', 'Value': '8'}
我希望能够过滤掉特定的列。例如,要返回这个:
{'Name': 'bar', 'Description': 'foofoo'}
我知道我只能用这个打印我想要的列,print(row['Name'],row['Description'])
但是当我还想返回密钥时,这只会返回我的值。
我怎样才能做到这一点?
解决方案
我写了这整件事只是为了意识到@anky_91 已经提出了建议。那好吧...
import pandas as pd
data = {
"name": ["foo", "abc", "baz", "bar"],
"description": ["foobar", "foofoo", "foobaz", "foofoo"],
"value": [5, 3, 4, 8],
}
df = pd.DataFrame(data=data)
print(df, end='\n\n')
rec_dicts = df.loc[df["description"] == "foofoo", ["name", "description"]].to_dict(
"records"
)
print(rec_dicts)
输出:
name description value
0 foo foobar 5
1 abc foofoo 3
2 baz foobaz 4
3 bar foofoo 8
[{'name': 'abc', 'description': 'foofoo'}, {'name': 'bar', 'description': 'foofoo'}]
推荐阅读
- mamp - Drush 无法在本地主机 MAMP 上找到 mysql
- python-2.7 - find_packages() 没有找到 setup.py 中的所有包
- apache-kafka - 卡夫卡在存储新消息后截断了它们
- javascript - 需要帮助尝试使用 UserScript 在网站上“自动”更改颜色
- python-3.6 - 用于 xgboost 的基于 F1 的自定义评估函数 - Python API
- mozilla-deepspeech - DeepSpeech:区分演讲者
- xamarin - 我可以使用一个参数同时在模板上设置多个属性吗?
- android - 安装在 Android 设备中的已发布 APK 被 Play Protect 阻止错误
- angular - Angular 4 需要时间来影响实时网站上的新变化
- php - image/intervention: jpg/png转换成webp时生成的空白图片