如何让 pandas 打印出数据而不是内存地址?
How to get pandas to print out data and not the memory address?
我目前正在尝试使用 pandas、JSON 和 Python 3.4 从文本文件中打印数据。
当我在我朋友的机器上 运行 Python 2.7 上的代码时,它工作正常,但在 Python 3.4 上却不行。
这是我的代码:
import json
import pandas as pd
tweets_data_path = 'tweets.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)
for i in range(len(tweets_data)):
print(tweets['text'][i])
它不打印推文数据,而是打印数据的内存位置。例如
<map object at 0x04988050>
<map object at 0x04988050>
如何让它打印出实际的推文数据?
您需要先将其转换为列表。所以只需将 map(lambda...)
更改为 list(map(lambda...))
我目前正在尝试使用 pandas、JSON 和 Python 3.4 从文本文件中打印数据。
当我在我朋友的机器上 运行 Python 2.7 上的代码时,它工作正常,但在 Python 3.4 上却不行。
这是我的代码:
import json
import pandas as pd
tweets_data_path = 'tweets.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)
for i in range(len(tweets_data)):
print(tweets['text'][i])
它不打印推文数据,而是打印数据的内存位置。例如
<map object at 0x04988050>
<map object at 0x04988050>
如何让它打印出实际的推文数据?
您需要先将其转换为列表。所以只需将 map(lambda...)
更改为 list(map(lambda...))