python raise valueerror_raise ValueError('无法设置没有定义索引的帧'ValueError:

我的代码出现以下错误File

"C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py",

line 2519, in setitem

self._set_item(key, value)

File

"C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py",

line 2584, in _set_item

self._ensure_valid_index(value)

File

"C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py",

line 2566, in _ensure_valid_index

raise ValueError('Cannot set a frame with no defined index '

ValueError: Cannot set a frame with no defined index and a value that

cannot be converted to a Series

既然我还在学习,我就很难修好它。。。我该怎么办?import json

import pandas as pd

import matplotlib.pyplot as plt

tweets_data_path="C:/Users/prono/.spyder-py3/twitter_data.txt"

tweets_data = []

tweets_file = open(tweets_data_path, "r")

for line in tweets_file:

try:

tweet = json.loads(line)

tweets_data.append(tweet)

except:

continue

print(len(tweets_data))

tweets = pd.DataFrame()

tweets['text'] = map(lambda tweet: tweet['text'], tweets_data)

tweets['lang'] = map(lambda tweet: tweet['lang'], tweets_data)

tweets['country'] = map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweets_data)

tweets_by_lang = tweets['lang'].value_counts()

fig, ax = plt.subplots()

ax.tick_params(axis='x', labelsize=15)

ax.tick_params(axis='y', labelsize=10)

ax.set_xlabel('Languages', fontsize=15)

ax.set_ylabel('Number of tweets' , fontsize=15)

ax.set_title('Top 5 languages', fontsize=15, fontweight='bold')

tweets_by_lang[:5].plot(ax=ax, kind='bar', color='red')

tweets_by_country = tweets['country'].value_counts()

fig, ax = plt.subplots()

ax.tick_params(axis='x', labelsize=15)

ax.tick_params(axis='y', labelsize=10)

ax.set_xlabel('Countries', fontsize=15)

ax.set_ylabel('Number of tweets' , fontsize=15)

ax.set_title('Top 5 countries', fontsize=15, fontweight='bold')

tweets_by_country[:5].plot(ax=ax, kind='bar', color='blue')

你可能感兴趣的:(python,raise,valueerror)