我遇到以下需要帮助的问题。 我有一个csv文件中的310条记录,其中包含一些关于错误的信息。 在另一个csv文件中,我有80万条包含有关行李统计的记录(可能导致错误的事件)。通过熊猫数据帧进行高效循环
与下面的脚本,我通过漏洞试图
- 循环,并选择一个。
- 循环通过统计记录和检查一些条件
- 如果有匹配,从错误记录统计 记录添加一列。
- 另存新文件
我的问题是,如果我能在使用numpy的或任何其他更有效的方式archieve这一点。 目前的方法是采取永远因为统计
任何帮助或提示在正确的方向的大小的运行将不胜感激。 感谢名单中adavance
dataset = pd.read_csv('310_records.csv')
dataset1 = pd.read_csv('800K_records.csv')
cols_error = dataset.iloc[:, [0, 1, 2, 3, 4, 5, 6]]
cols_stats = dataset1.iloc[:, [1, 2, 3, 4, 5, 6, 7, 8, 9]]
cols_stats['Fault'] = ''
cols_stats['Created'] = ''
for i, error in cols_error.iterrows():
fault_created = error [0]
fault_ucs = error [1]
fault_dn = error [2]
fault_epoch_end = error [3]
fault_epoch_begin = error [4]
fault_code = error [6]
for index, stats in cols_stats.iterrows():
stats_epoch = stats[0]
stats_ucs = stats[5]
stats_dn = stats[7]
print("error:", i, " Stats:", index)
if(stats_epoch >= fault_epoch_begin and stats_epoch <= fault_epoch_end):
if(stats_dn == fault_dn):
if(stats_ucs == fault_ucs):
cols_stats.iloc[index, 9] = fault_code
cols_stats.iloc[index, 10] = fault_created
else:
cols_stats.iloc[index, 9] = 0
cols_stats.iloc[index, 10] = fault_created
cols_stats.to_csv('datasets/dim_stats_error.csv', sep=',', encoding='utf-8')
可能会被很多不说'print'声明更快。 –
@StefanPochmann注意到..我会摆脱那条线。 Thanx – Makten
您可以在800k_records中搜索并隔离第三个文件中的所有错误(保留位置跟踪)。并在第三个文件中进行匹配?此外,并行执行多个搜索将有助于 – pwnsauce