如何从dict和特定列中删除密钥?

时间:2016-02-01 17:35:27

标签: python json dictionary pandas dataframe

请这是我的代码。我想从输出中删除键,只显示"值"还有更多,因为我按照" date"分组,我不希望列显示在列表中。 谢谢

df = pd.read_csv('testdata.csv')
json_dict = {}
for date_range, flights in df.groupby('date'):
    json_dict[date_range]= [str(v) for v in flights.to_dict(orient='records')]

with open('testdata.json', 'w') as f:
     json.dump(json_dict, f, indent=4, sort_keys=True)

当前输出:

{
    "2001-04-10--2001-02-02": [
        "{'Date': '2001-04-10--2001-02-02', 'DptCity_DptCountry': 'Beijing_Japan', 'AuthorID': 'GGG', 'ArCity_ArCountry': 'Paris_France'}"
    ], 
    "2008-03-10--2001-02-02": [
        "{'Date': '2008-03-10--2001-02-02', 'DptCity_DptCountry': 'London_UK', 'AuthorID': 'BBB', 'ArCity_ArCountry': 'Lagos_Nigeria'}", 
        "{'Date': '2008-03-10--2001-02-02', 'DptCity_DptCountry': 'NewYork_US', 'AuthorID': 'DDD', 'ArCity_ArCountry': 'Nairobi_Kenya'}", 
        "{'Date': '2008-03-10--2001-02-02', 'DptCity_DptCountry': 'London_UK', 'AuthorID': 'EEE', 'ArCity_ArCountry': 'Paris_France'}", 
        "{'Date': '2008-03-10--2001-02-02', 'DptCity_DptCountry': 'NewYork_US', 'AuthorID': 'FFF', 'ArCity_ArCountry': 'Paris_France'}"
    ], 
    "2008-03-10--2001-04-02": [
        "{'Date': '2008-03-10--2001-04-02', 'DptCity_DptCountry': 'Beijing_Japan', 'AuthorID': 'CCC', 'ArCity_ArCountry': 'Paris_France'}"
    ], 
    "2008-03-12--2001-02-02": [
        "{'Date': '2008-03-12--2001-02-02', 'DptCity_DptCountry': 'NewYork_US', 'AuthorID': 'AAA', 'ArCity_ArCountry': 'Paris_France'}"
    ]
}

期望的输出:

{
    "2001-04-10--2001-02-02": [
        "{'Beijing_Japan','GGG',  'Paris_France'}"
    ], 
    "2008-03-10--2001-02-02": [
        "{'London_UK', 'BBB','Lagos_Nigeria'}", 
        "{'NewYork_US','DDD','Nairobi_Kenya'}", 
        "{'London_UK','EEE','Paris_France'}", 
        "{'NewYork_US','FFF', 'ArCity_ArCountry': 'Paris_France'}"
    ], 
    "2008-03-10--2001-04-02": [
        "{'Beijing_Japan','CCC','Paris_France'}"
    ], 
    "2008-03-12--2001-02-02": [
        "{'NewYork_US','AAA','Paris_France'}"
    ]
}

1 个答案:

答案 0 :(得分:2)

尝试:

for date_range, flights in df.groupby('date'):
    flights_no_date = flights.drop('date', axis=1)
    json_dict[date_range]= map(list, flights_no_date.values)