python - 从 pandas 数据框中过滤“坏”数据并绘制“好”结果
问题描述
我正在使用一个函数来绘制来自两个熊猫数据帧的各种来源的光曲线。我想编写一个循环来循环遍历数据框中的每条光曲线,从而绘制出良好的光曲线。该函数通过在同一图上绘制两条曲线来工作,一条来自每个数据帧。我需要循环来计算其中一条曲线(LSST 曲线)的数据点,并消除少于 5 个点的图。所有的 HiTS 图都有足够的数据点,但 LSST 图都应用了过滤器。我对 Python 还是比较陌生,所以我对如何去做这件事感到很困惑。下面列出了有问题的函数:
def plotLsstHitsLightCurve(obj, srcTable, row, lcPath='random file path'):
plt.figure(figsize=(10,8))
# Plot LSST curve
srcRowFilter = (srcTable['diaObjectId'] == obj)
srcRow = srcTable.loc[srcRowFilter]
plt.errorbar(srcRow['midPointTai'], srcRow['magCol'],yerr=srcRow['magErrCol'],ls=':', marker='o', label='LSST')
# PLot HiTS Curve
tok = row['internalID'].split('_')
field = '_'.join([tok[0],tok[1]])
ccd = tok[2]
lightcurveFile = field + '_' + ccd + '_LC_50.tar.gz'
tarball = tarfile.open(os.path.join(lcPath,field,ccd,lightcurveFile))
data = tarball.extractfile(str(row['internalID'])+ '_g.dat')
dfl = pd.read_csv(data,sep='\t') # lead a file with a light curve data into a pandas dataframe
plt.errorbar(dfl.MJD,dfl.MAG_AP1,dfl.MAGERR_AP1, marker='o',linestyle=':', label='HiTS')
obj = goodObj.iloc[idx[2]]['diaObjectId']
row = hitsDf.iloc[2]
enter code here
enter code here
解决方案
推荐阅读
- c++ - 在 Vistual Studio 中调试时如何查看 QJsonArray、QJsonValue 值
- python - 加载工作簿时与样式相关的 Openpyxl 中的列表索引超出范围
- sql - PostgreSQL:将 SQL 查询简化为更短的查询
- python - 使用循环指定 loc 行标签时的 Pandas Keyerror
- nginx - 嵌套位置的 Nginx 重写规则
- rust - 为什么 ~/.cargo 目录这么大?
- python - 列表理解中迭代器链接的替代方法?
- performance - 用于查询获取所有用户名的 Cassandra 表结构
- python-3.x - 将数据框导出到 csv 时出现问题
- java - 使用 Object 类的 Map 收集对象时的 Flink 收集器问题