【问题标题】:How to convert data frame pandas into list in numpy without word "list" in array numpy如何在数组numpy中没有单词“list”的情况下将数据框pandas转换为numpy中的列表
【发布时间】:2020-09-27 13:56:59
【问题描述】:

我已将 pandas 中的数据框转换为 numpy 中的列表,但我在数组 numpy 中得到了单词“list”,如图 1 所示。 Figure 1

我希望我在 numpy 中获得列表数据,如图 2 所示,数组中没有单词“list”

Figure 2

【问题讨论】:

  • 您好,请不要发布代码和/或输出为图像。相反,将代码和输出以文本形式放在问题正文中。这有助于其他人更快、更轻松地分析和回答您的问题。
  • 框架列/系列包含列表,而不是通常的单个值。来自此类 Series 的数组将是包含这些列表的一维数组。这就是图像所显示的。如果您改用to_list(),您将获得一个列表列表。这可以变成一个二维数组如果所有这些子列表都具有相同的长度。

标签: python arrays pandas numpy


【解决方案1】:

它看起来 numpy.array 将列表列表强制转换为二维数组,但列表系列转换为一维列表数组。

所以这应该可行。

tweet = TWEET_DATA['TF_IDF_Vec']
arr = np.array(tweet.to_list())

【讨论】:

    【解决方案2】:

    试试-

    arr = np.array(tweet.tolist())
    

    【讨论】:

      【解决方案3】:

      您的阵列显示中的 list 一词不仅仅是为了让事情变得丑陋。它旨在传达有用的信息。另一方面,pandas 倾向于在其显示中隐藏该信息 - 使事情变得漂亮。尽可能尝试了解您正在使用的对象的基本性质,而不仅仅是它们的显示。

      我们可以制作一个包含多个项目的系列(或数据框列):

      In [27]: s =pd.Series([None, 'string','[1,2,3]',[1,2,3],np.array([1,2,3])])
      In [28]: s
      Out[28]: 
      0         None
      1       string
      2      [1,2,3]
      3    [1, 2, 3]
      4    [1, 2, 3]
      dtype: object
      

      注意列表和数组看起来是一样的,而且字符串没有引号。

      如果我们向它请求一个数组:

      In [29]: np.array(s)
      Out[29]: 
      array([None, 'string', '[1,2,3]', list([1, 2, 3]), array([1, 2, 3])],
            dtype=object)
      

      np.array() 与以下内容相同:

      In [30]: s.to_numpy()
      Out[30]: 
      array([None, 'string', '[1,2,3]', list([1, 2, 3]), array([1, 2, 3])],
            dtype=object)
      

      在这个一维数组中,元素的性质更加明确。

      除了显示嵌套列表外,项目列表类似:

      In [31]: s.tolist()
      Out[31]: [None, 'string', '[1,2,3]', [1, 2, 3], array([1, 2, 3])]
      

      我们可以从最后 2 项创建一个二维数组,因为它们的长度都是 3:

      In [32]: s[3:].tolist()
      Out[32]: [[1, 2, 3], array([1, 2, 3])]
      In [33]: np.array(s[3:].tolist())
      Out[33]: 
      array([[1, 2, 3],
             [1, 2, 3]])
      

      【讨论】:

        【解决方案4】:

        检查这是否有效

        例子

        lista = list([list([1,2,3]),[2]])
        
        lista=sum(lista, [])
        
        arrayLista = np.array(lista)
        

        你的情况

        tweet = sum(tweet, [])
        arr = np.array(tweet) 
        

        【讨论】:

          猜你喜欢
          • 2019-02-25
          • 1970-01-01
          • 2016-03-31
          • 2014-03-23
          • 2021-02-26
          • 2020-06-20
          • 1970-01-01
          相关资源
          最近更新 更多