Я создал следующий фрейм данных из файла твитов json.
tweets['text'] = list(map(lambda tweet: tweet['text'], tweets_data))
tweets['date'] = list(map(lambda tweet: tweet['created_at'], tweets_data))
tweets['lang'] = list(map(lambda tweet: tweet['lang'], tweets_data))
tweets['place_type'] = list(map(lambda tweet: tweet['place']['place_type'] if tweet['place'] != None else None, tweets_data))
tweets['place_name'] = list(map(lambda tweet: tweet['place']['full_name'] if tweet['place'] != None else None, tweets_data))
tweets['country'] = list(map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweets_data))
tweets['hashtags'] = list(map(lambda tweet: tweet['entities']['hashtags'], tweets_data))
Текущий вывод столбца хэштегов следующий:
"[{'text': 'NOJUSTICE', 'indices': [62, 72]}, {'text': 'TrumpPence', 'indices': [93, 104]}]"
Я пытаюсь создатьновый столбец, который содержит только хэштеги.Например:
NOJUSTICE and Trumpence
Я попробовал следующий код:
ht=[]
for s in range(len(tweets['hashtags'])):
hasht=[]
for t in range(len(tweets.hashtags[s])):
hasht.append(tweets['hashtags'][s][t]['text'])
t=t+1
ht.append(hasht)
s=s+1
tweets['HT']=zip(ht)
и получил следующую ошибку:
TypeError Traceback (most recent call last)
<ipython-input-38-9780008354d7> in <module>
3 hasht=[]
4 for t in range(len(tweets.hashtags[s])):
----> 5 hasht.append(tweets['hashtags'][s][t]['text'])
6 t=t+1
7 ht.append(hasht)
TypeError: string indices must be integers
образец CSV-файла
я хочу, чтобы столбец хэштегов содержал только хэштеги без индексов и прочего
ОБНОВЛЕНИЕ: я использовал следующее предложение и получил ту же ошибку
tweets['hashtags'].apply(lambda x: [d['text'] for d in x])