パンダのデータフレームのインデックスに問題があります。私がしようとしているのは、JSONファイルからデータをロードし、Pandasデータフレームを作成し、そのデータフレームから特定のフィールドを選択してデータベースに送信することです。あなたの助けのための https://pastebin.com/Bzatkg4LパンダKeyError:「['value']インデックスにありません」
import pandas as pd
from pandas.io import sql
import MySQLdb
from sqlalchemy import create_engine
# Open and read the text file where all the Tweets are
with open('US_tweets.json') as f:
tweets = f.readlines()
# Convert the list of Tweets into a structured dataframe
df = pd.DataFrame(tweets)
# Attributes needed should be here
df = df[['created_at', 'screen_name', 'id', 'country_code', 'full_name', 'lang', 'text']]
# To create connection and write table into MySQL
engine = create_engine("mysql+pymysql://{user}:{pw}@localhost/{db}"
.format(user="blah",
pw="blah",
db="blah"))
df.to_sql(con=engine, name='US_tweets_Table', if_exists='replace', flavor='mysql')
ありがとう:
以下は、あなたが実際にフィールドが存在して見ることができるようにJSONファイルに何があるかへのリンクです!
オリジナルのデータフレームは正しく構築されていますか?特に、そのデータフレームにはどのような列がありますか? – Evan
@Evanあなたが正しいかもしれないと思いますが、データフレームの列を作成するにはどうすればいいですか?私が間違っていると私を修正しますが、JSONファイルの属性に関連付けられたデータフレームに列を作成する必要があると言えます。いったんこれらの列が作成されると、属性を列に追加できますか? –
参照しようとしている列が索引にないため、エラーが発生します。つまり、最初に作成した列には存在しません。それらはJSONファイル内のオブジェクト内に存在しますが、pandasは最高レベルのためにJSON内のすべてのオブジェクトの列を作成しません。 – Evan