pandas - 根据列的子集从列表中删除重复的 Pandas 数据帧
问题描述
我有一个名为的数据框列表tempDFList
。
type(tempDFList)
list
type(tempDFList[0])
pandas.core.frame.DataFrame
它们有一个共同的列子集,包括Previous Pivot Price
&Pivot Price
但并非所有列都相同。
如何使用类似drop_duplicates
using defaultkeep='first
来确保我没有任何具有相同Previous Pivot Price
&Pivot Price
的框架tempDFList
?
所需的输出是一个数据帧列表,其中没有任何具有相同Previous Pivot Price
&的帧Pivot Price
。对于下面的示例数据,只剩下两个。
代码来自df.to_dict
每个都是一个单独的数据框,只有一行。这些在tempDFList
.
{'Re_236_H1': {0: nan},
'Re_382_H1': {0: nan},
'Re_50_H1': {0: 0.8677},
'Re_618_H1': {0: 0.8668},
'Previous Pivot Date': {0: '2021-04-13 09:00:00'},
'Previous Pivot Price': {0: 0.86408},
'Date': {0: Timestamp('2021-04-13 13:00:00')},
'Pivot Price': {0: 0.871180},
'Pivot Length': {0: 0.007099}}
{'Re_236_M15': {0: nan},
'Re_382_M15': {0: nan},
'Re_50_M15': {0: 0.8677},
'Re_618_M15': {0: 0.8668},
'Previous Pivot Date': {0: '2021-04-13 09:45:00'},
'Previous Pivot Price': {0: 0.86408},
'Date': {0: Timestamp('2021-04-13 13:00:00')},
'Pivot Price': {0: 0.871180},
'Pivot Length': {0: 0.007099}}
{'Re_236_H4': {0: nan},
'Re_382_H4': {0: nan},
'Re_50_H4': {0: 0.8677},
'Re_618_H4': {0: 0.8668},
'Previous Pivot Date': {0: '2021-04-14 09:00:00'},
'Previous Pivot Price': {0: 0.89408},
'Date': {0: Timestamp('2021-04-13 13:00:00')},
'Pivot Price': {0: 0.891180},
'Pivot Length': {0: 0.008099}}
解决方案
也许一个简单的过滤set
就可以了:
out = []
seen = set()
for d in tempDFList:
t = (d["Previous Pivot Price"].iat[0], d["Pivot Price"].iat[0])
if t not in seen:
out.append(d)
seen.add(t)
print(*out, sep="\n\n")
印刷:
Re_236_H1 Re_382_H1 Re_50_H1 Re_618_H1 Previous Pivot Date Previous Pivot Price Date Pivot Price Pivot Length df
0 NaN NaN 0.8677 0.8668 2021-04-13 09:00:00 0.86408 2021-04-13 13:00:00 0.87118 0.007099 df
Re_236_H4 Re_382_H4 Re_50_H4 Re_618_H4 Previous Pivot Date Previous Pivot Price Date Pivot Price Pivot Length df
0 NaN NaN 0.8677 0.8668 2021-04-14 09:00:00 0.89408 2021-04-13 13:00:00 0.89118 0.008099 df2
推荐阅读
- react-native - 如何在 React Native 中集成支付?
- ceph - ceph raw used 超过所有池中使用的总和(ceph df 详细信息)
- python - 如何处理 RuntimeWarning:从未等待协程“new_account”
- c++ - 为什么在头文件中定义 `const int` 时没有重复定义错误?
- android - 在我从多任务托盘刷我的应用程序后,FCM 服务被杀死
- css - 一些 CSS 类选择器在 React 中不起作用
- rust - 错误:无法为“gmp-mpfr-sys v1.4.0”运行自定义构建命令
- ruby - 运行 ruby 测试时在 $PATH 中找不到 Jenkinsfile docker exec 错误可执行文件
- php - 无法在 CakePHP 4 中使用 setUser 在 Auth 中设置用户
- sql - Presto TIMESTAMP 从 2 天前获取数据而不输入年月日期?