如何创建以列为数组的熊猫数据框

时间:2018-09-10 15:06:20

标签: python pandas numpy scikit-learn

我想用列之一作为列表或数组创建一个数据框 但是尝试这样做会出现错误“设置具有可迭代项时,必须具有相同的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 个答案:

答案 0 :(得分:3)

为列分配类似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                    

答案 1 :(得分:0)

说实话,这个问题可能更清楚。这样会达到您的期望吗?

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]