如何让熊猫打印出数据而不是内存地址?

Posted

技术标签:

【中文标题】如何让熊猫打印出数据而不是内存地址?【英文标题】:How to get pandas to print out data and not the memory address? 【发布时间】:2015-09-21 13:59:05 【问题描述】:

我目前正在尝试使用 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>

如何让它打印出实际的推文数据?

【问题讨论】:

在python 3中你需要使用list(map(...)),我猜。 @ZdaR 把这个写成答案怎么样? 【参考方案1】:

您需要先将其转换为列表。所以只需将map(lambda...) 更改为list(map(lambda...))

【讨论】:

这成功了!谢谢!只需等待 7 分钟即可接受您的回答。

以上是关于如何让熊猫打印出数据而不是内存地址?的主要内容,如果未能解决你的问题,请参考以下文章

调试器如何只看到值而不是变量的内存地址

如何在特定地址创建 SQLite 内存数据库

内存对齐问题

如何使用 LLDB 打印内存地址的内容?

c++程序打印出地址而不是值

内存管理