我在电子表格中具有以下数据表:
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'])
打印我想要的列,但是,这仅在我还想返回键时才返回值。
我该怎么做?
答案 0 :(得分:2)
我写这本书的全部目的只是为了意识到@anky_91 had already suggested it。哦,好吧...
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'}]
答案 1 :(得分:1)
转换为字典后,您可以使用以下命令删除不需要的密钥:
del(row[value])
现在词典将仅具有名称和描述。
答案 2 :(得分:0)
您可以尝试以下方法:
@sumLowerGrades
结果:
set @sumLowerGrades = sum(select TOP 2 grades.grade from grades
where grades.studentno = 1 order by grade ASC)