【问题标题】:how to restore np.arry from np.array string in pandas?如何从 pandas 中的 np.array 字符串恢复 np.array?
【发布时间】:2020-07-25 02:30:09
【问题描述】:

如何从 pandas 中的 np.array 字符串恢复 np.arry?

np.arry 存储在数据帧 df 中,

>>> import pandas as pd
>>> df=pd.DataFrame({'X':['[2 5 6]','[5 6 9]']})
>>> df
         X
0  [2 5 6]
1  [5 6 9]

如何恢复 np.array 并获得以下内容

   [[2 5 6],
     [5 6 9]]

【问题讨论】:

  • 只需获取值df.values
  • >>> df.X.values 只得到一个字符串数组列表(['[2 5 6]', '[5 6 9]'], dtype=object) ,而不是 [[ 2 5 6], [5 6 9]]
  • 您说您想要引用 numpy 数组。如果您想引用列表df.values.tolist()。实际上你真的是说你想要 X 列中的列表 df["X"].values.tolist()

标签: pandas numpy-ndarray


【解决方案1】:

试试这个:

np.array([line for line in df['X'].map(lambda x: x.replace(']','').replace('[','').split(' '))]).astype(int)

【讨论】:

    【解决方案2】:

    试试这个。

    from ast import literal_eval
    df.X.str.replace(r'\s', r', ', regex=True).apply(literal_eval).tolist()
    # [[2, 5, 6], 
    #  [5, 6, 9]]
    

    虚拟数据

    import pandas as pd
    df=pd.DataFrame({'X':['[2 5 6]','[5 6 9]']})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-17
      • 2021-12-16
      • 2019-09-28
      • 1970-01-01
      • 2019-02-27
      • 2019-08-21
      • 2016-02-14
      • 1970-01-01
      相关资源
      最近更新 更多