首页 > 解决方案 > 按标签选择并写入 csv

问题描述

我是熊猫新手,所以希望这是一个简单的解决方法。我正在尝试创建一个仅包含 df.loc[] 中调用的列的 csv 文件。我的 csv 文件当前显示所有可用的行/列,因此选择不起作用。

import requests, json
import pandas as pd

# url and date set earlier
response = requests.post(url, date, headers={'Authorization':'OAuth mycode'})

if response.status_code == requests.codes.ok:
    response_json = response.json()
    print('\n\n\nReturned JSON\n\n\n')
    print(json.dumps(response_json, sort_keys=True, indent=4, separators=(',', ': ')))

    # df = pd.DataFrame.from_dict(response_json)
    df = pd.DataFrame(response_json)
    print(df.keys())
    df.loc[:,['Comment','EndTimeLocalized','Id','StartTimeLocalized']]
    df.to_csv("r1.csv")
    print('\nCSV Created\n')
else:
    response.raise_for_status()

标签: pythonjsonpandascsv

解决方案


pd.DataFrame.loc不是就地操作。

df在导出之前分配回:

df = df.loc[:, ['Comment','EndTimeLocalized','Id','StartTimeLocalized']]
df.to_csv('r1.csv')

或者,如果您希望保持df不变,请在之后立即切片并导出:

df.loc[:, ['Comment','EndTimeLocalized','Id','StartTimeLocalized']].to_csv('r1.csv')

推荐阅读