【问题标题】:Why convert map function to list in Pandas DataFrame?为什么要将 map 函数转换为 Pandas DataFrame 中的列表?
【发布时间】:2020-09-20 22:02:29
【问题描述】:

对于学校作业,我正在分析推文。从获得的 Twitter 数据中,我们只对推文的文本感兴趣。他们使用以下代码将其放入 DataFrame 中:

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

我不明白为什么将 map 函数转换为列表。 DataFrame 看起来不错,但我不明白为什么需要将其转换为列表。有人可以解释一下吗?

【问题讨论】:

    标签: python pandas dataframe twitter


    【解决方案1】:

    因为您想将其分配为列,所以 map 返回一个 map 对象,我相信它是一个生成器。让我们看一个简化的例子:

    假设我们有以下数据框:

    df = pd.DataFrame({"col1": list("abc")})
    print(df)
    
      col1
    0    a
    1    b
    2    c
    

    我们有一个生成器函数,它简单地产生列表的每个值:

    def get_column(values: list):
        for i in values:
            yield i
    

    如您所见,如果我们直接将其赋值为列,它将返回生成器对象:

    df["col2"] = get_column([1, 2, 3])
    print(df)
    
      col1                                             col2
    0    a  <generator object get_column at 0x7fbb1e2ca9e0>
    1    b  <generator object get_column at 0x7fbb1e2ca9e0>
    2    c  <generator object get_column at 0x7fbb1e2ca9e0>
    

    但是将其转换为列表会给我们正确的结果。

    df["col2"] = list(get_column([1, 2, 3]))
    print(df)
    
      col1  col2
    0    a     1
    1    b     2
    2    c     3
    

    【讨论】:

      猜你喜欢
      • 2017-08-15
      • 2021-03-01
      • 2017-07-14
      • 1970-01-01
      • 2014-01-05
      • 2021-11-28
      • 1970-01-01
      相关资源
      最近更新 更多