Python 最快的价值更新方法?
我正在处理超过100万份专利申请,必须确定日期,此外还有其他我将在以后处理的事情。我正在将文件读入Pandas数据帧,然后运行以下函数:Python 最快的价值更新方法?,python,pandas,performance,dataframe,time,Python,Pandas,Performance,Dataframe,Time,我正在处理超过100万份专利申请,必须确定日期,此外还有其他我将在以后处理的事情。我正在将文件读入Pandas数据帧,然后运行以下函数: def date_change(): new_dates = {'m/y': []} for i, row in apps.iterrows(): try: d = row['date'].rsplit('/')
def date_change():
new_dates = {'m/y': []}
for i, row in apps.iterrows():
try:
d = row['date'].rsplit('/')
new_dates['m/y'].append('{}/19{}'.format(d[0], d[2]))
except Exception as e:
print('{} {}\n{}\n{}'.format(i, e, row, d))
new_dates['m/y'].append(np.nan)
apps.join(pd.DataFrame(new_dates))
apps.drop('date')
有没有更快捷的方法来执行此操作?Pandas是用于如此大数据集的正确库吗?有人告诉我PySpark适合大数据,但它能在多大程度上提高速度?因此,您似乎在使用字符串来表示数据,而不是日期时间对象。 我建议做一些类似的事情
df['date'] = pd.to_datetime(df['date'])
因此,您根本不需要迭代,因为该函数对整个列进行操作。
然后,您可能需要检查以下用于适当设置列格式的选项
如果您可以显示输入和预期输出,我可以在这里添加完整的解决方案
此外,熊猫通常可以管理100万行(当然取决于列的数量)以前从未使用过datetime,谢谢你提醒我!输入:2/21/44,输出:2/21/1944。对于这一点,只有6列,但这是很好的了解。更新:工作得很好,但它解释了一堆值来自20个,而不是19个(所有数据都来自20世纪)。你们可能想检查一下,但我不确定这是否有助于直截了当地说: