python - 尝试让 pandas python 代码更短

标签 python pandas

我对 python 和 pandas 相当陌生。这段代码完全符合我的要求

dfmcomp=dfm.loc[dfm[ProgSel]=='C']
dfmcomp=dfmcomp[~dfmcomp.Code.isin(dfc.CourseCode)]
print(dfmcomp[['Code','Description']])

但我觉得我应该能够用一行而不是三行来完成此操作,并且无需创建额外的数据帧(dfmcomp)。我正在尝试学习如何创建更好/更整洁的代码

我尝试将第二行中的 dfmcomp 替换为创建 dfmcomp 的代码,将其缩短为两行。我希望从那里我可以完全消除 dfmcomp 并只打印切片 dfm,但它不起作用:

dfmcomp=dfm[~dfm.loc[dfm[ProgSel]=='C'].Code.isin(dfc.CourseCode)]
print(dfmcomp[['Code','Description']])

我收到这个错误

IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).

我不知道下一步该去哪里。有人可以帮忙吗?这可以做得更好吗?

最佳答案

我认为你应该能够做到这一点?

print(dfm.loc[dfm[ProgSel].eq('C') & ~dfc.Code.isin(dfc.CourseCode), ['Code','Description']]

关于python - 尝试让 pandas python 代码更短,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70443139/

相关文章:

python - 为回归创建组标识符

python - 从字符串中保存和检索 Numpy 数组

python - 如果 pandas 数据框中包含特定子字符串,则替换该字符串

python - Pandas 检测连续的负数并返回值

python - 如何根据排序算法获得 pandas 的获胜者选民

python pandas merge_asof groupby

python - 存储按日期索引的对象的最佳数据结构是什么?

python - Django 表单中的隐藏字段不在 cleaned_data 中

python - 将 Pandas 数据框中的多列更改为日期时间

python - 偏移数据框引用的最Pythonic方法?