【发布时间】:2019-03-28 00:30:52
【问题描述】:
我需要为列初始化一个具有某些数据类型的空 pandas DataFrame,然后将一些可能不包含所有列的行附加到 DataFrame,但列的内容必须是 DataFrame 时声明的内容。 有没有办法做到这一点?
record_list = [
{ 'lastname' : 'Ford',
'firstname' : 'Ana',
'agreed' : 0
},
{ 'lastname' : 'Snow',
'agreed' : 'a'
}
]
df = pd.DataFrame({
'lastname' : np.array([], dtype=np.object),
'firstname' : np.array([], dtype=np.object),
'agreed' : np.array([], dtype=np.int64)
})
for record in record_list:
df = df.append([record], ignore_index=True)
上面应该失败,因为'agreed'是字符串,而不是int,但如果它是int,那么NaN应该放在第二条记录的数据框中,即使类型是str。 我也分别尝试了 columns 和 dtype ,但没有奏效。请帮忙!
【问题讨论】:
-
您的工作流程到底是什么?您需要什么样的错误处理?数据有多大,您将多久运行一次?我不知道有一种方法可以让 pandas 强制执行数据类型。你能在 pandas 之外运行这个数据输入过程吗?使用 SQL 还是使用 ETL 工具?
-
还可以查看:tdda.info/…,不过,它会在事后进行测试,而不是在添加数据时进行测试
标签: python-3.x pandas dataframe