#やりたいこと
取得したAPIデータがCSVになっているので、pandasを用いてdataframe化して項目を絞りたい。
##データ取得のソースコード
headers = {
'X-API-Key': 'xxx',
}
response = requests.get('https://xxx', headers=headers)
body = response.content
print(response)
print(body)
##csvをdataframe化して、filterで絞りをかけるソースコード
df = pd.read_csv(io.BytesIO(body),sep=" ")
print(df.columns.values)
df = df.filter(items= ['xxx'])
print(df)
###実行結果
['xxx yyy zzz aaa']
Empty DataFrame
Columns: []
Index: [xxx ...]
[2076 rows x 0 columns]
#発生した問題
df.columns.values
で存在を確認したcolumnが、filterをかけると存在せず
Empty DataFrame
が返ってくる。
#解決方法
sep=' '
を削除する。
#原因
sep=' '
があると
print(df.columns.values)
-----------------
['xxx yyy zzz aaa']
と1つのcolumnとして認識される。
正しくは
print(df.columns.values)
-----------------
['xxx', 'yyy', 'zzz', 'aaa']
と表示されてほしい。
よく見るとクオーテーションがおかしいなと思ったことが気づいたきっかけ。