Python 使用密钥保存数据帧
我正在尝试解析csv文件并打印某些时间序列图 关于csv文件: csv文件包含大量数据,我需要根据for循环中的id解析其中的某些部分。 csv文件如下所示: 关于我的代码: 所以,在看到csv文件的一个示例后,我将告诉您我的目标是什么。我需要为csv文件中出现的每个不同ID保存一个数据框,其中包含以下所有列,如特定ID的Python 使用密钥保存数据帧,python,pandas,csv,Python,Pandas,Csv,我正在尝试解析csv文件并打印某些时间序列图 关于csv文件: csv文件包含大量数据,我需要根据for循环中的id解析其中的某些部分。 csv文件如下所示: 关于我的代码: 所以,在看到csv文件的一个示例后,我将告诉您我的目标是什么。我需要为csv文件中出现的每个不同ID保存一个数据框,其中包含以下所有列,如特定ID的名称、日期和确认影响。此文件中约有12个ID,因此,我尝试使用for循环为每个ID保存不同的数据帧,然后执行一些绘制时间序列图的操作 我的代码: 运行完这段代码后,我将获取ID
名称
、日期
和确认影响
。此文件中约有12个ID,因此,我尝试使用for循环为每个ID保存不同的数据帧,然后执行一些绘制时间序列图的操作
我的代码:
运行完这段代码后,我将获取ID=DE2的结果及其图表。但是在DE2之后,我的代码崩溃了,我想看到的以下数据帧都没有出现
错误:
Traceback (most recent call last):
File "C:\Users\Deray\PycharmProjects\covid-19\venv\lib\site-packages\pandas\core\indexes\base.py", line 3080, in get_loc
return self._engine.get_loc(casted_key)
File "pandas\_libs\index.pyx", line 70, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index.pyx", line 96, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index.pyx", line 120, in pandas._libs.index.IndexEngine._get_loc_duplicates
KeyError: 'DE1'
感谢您的时间,有什么想法吗?问题是您将关键过滤数据帧分配给“for”循环中的“df”,从而覆盖了原始数据帧。要修复此问题,需要将过滤后的数据帧分配给另一个变量。尝试:
for key in id_array:
df_temp = df.loc[key]
print(key)
df_temp.plot()
plt.show()
您在第一次迭代中覆盖了df
df=df.loc[key]
如果需要,可以将原始数据保存到其他对象
更好的方法是使用ItErrors()
或者itertuples()它说没有ID为
'DE1'
的行,它是否存在于df.index.unique()
中?谢谢!我将尽快阅读有关iterrows的文章。谢谢@Calleniah为我工作!
for key in id_array:
df_temp = df.loc[key]
print(key)
df_temp.plot()
plt.show()
df=df.loc[key]