[英]pd.DataFrame() fails when combining 2 lists
我有2个列表如下,而我的列表实际上有3000个元素:
a=[numpy.datetime64('2004-04-12T08:00:00.000000000+0800'),numpy.datetime64('2004-04-12T08:00:00.000000000+0800'),numpy.datetime64('2004-04-12T08:00:00.000000000+0800')]
b=[1,2,3]
当我尝试将它们组合成一个包含2列的数据c=pd.DataFrame([pd.Series(a), pd.Series(b)])
: c=pd.DataFrame([pd.Series(a), pd.Series(b)])
它说: TypeError: invalid type promotion
我怎么解决这个问题?
尝试:
c = pd.DataFrame(data={'a':a,'b':b})
您收到错误是因为您尝试通过将两个列表放在一个列中来创建pandas数据帧,而这些列表中元素的数据类型不匹配。 基本上,您正在尝试将日期和整数放入同一列。
我希望这有帮助。
import pandas as pd
import numpy as np
data = {
'a': [
np.datetime64('2004-04-12T08:00:00.000000000+0800'),
np.datetime64('2004-04-12T08:00:00.000000000+0800'),
np.datetime64('2004-04-12T08:00:00.000000000+0800')
],
'b': [1, 2, 3]
}
df = pd.DataFrame(data)
print df
这应该不使用字典:
c = pd.DataFrame([a, b]).T
print c
尝试这个:
import pandas as pd
pd.DataFrame(zip(a,b))
0 1
0 2004-04-12 1
1 2004-04-12 2
2 2004-04-12 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.