我想用列之一作为列表或数组创建一个数据框 但是尝试这样做会出现错误“设置具有可迭代项时,必须具有相同的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']
这种情况可能类似于尝试从包含非常长的文本的列之一中仅获取电子邮件列表作为列。
答案 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]