代码之家  ›  专栏  ›  技术社区  ›  Thunder

如何创建列作为数组的数据帧

  •  1
  • Thunder  · 技术社区  · 7 年前

    我想创建一个数据帧,其中一列作为列表或数组 '使用iterable设置时必须具有相等的len键和值'

      eg  data.loc[0,'emails']={'a@a.com','b@b.com'} =>error 
          data.loc[0,'emails']='a@a.com' =>No error
    

    数据=>

    > Name  | emails
      ___________________________  
    > Judas |['j@a.com','x@y.com']
    > Priest|['x@a.com','x@y.com','j@k.com']
    

    这种情况可能类似于试图从包含很长文本的某个列中获取作为列的电子邮件列表。

    2 回复  |  直到 7 年前
        1
  •  3
  •   BENY    7 年前

    在你分配一个 list 喜欢还是喜欢 array object

    df=pd.DataFrame({'Name':['Juda','Pri']})
    df['Email']=''
    df.Email=df.Email.astype(object)
    df.loc[0,'Email']={'a@a.com','b@b.com'}
    df
    Out[511]: 
       Name               Email
    0  Juda  {b@b.com, a@a.com}
    1   Pri                    
    
        2
  •  0
  •   Jblasco    7 年前

    老实说,这个问题可能会更清楚。这会产生你所期望的结果吗?

    a = ["Judas" , ['j@a.com','x@y.com']]
    b = ['Priest', ['x@a.com','x@y.com','j@k.com']]
    df = pandas.DataFrame([a,b])
    print(df)
    

    给予:

                0                            1
    0   Judas           [j@a.com, x@y.com]
    1  Priest  [x@a.com, x@y.com, j@k.com]