python - 连接列表并删除重复项
问题描述
我有三个电子表格,它们都有一个月/年列。电子表格之间存在一些重叠(即一个涵盖 1998 年至 2015 年,一个涵盖 2012 年至 2020 年)。我想要一个没有重复的所有月份/年份的组合列表。我已经实现了这一点,但我觉得必须有一种更清洁的方式来做到这一点。
数据框有些相似:
月 | 价值 |
---|---|
1998M01 | 1` |
1998M02 | 2 |
import pandas as pd
unemp8315 = pd.read_csv('Unemployment 19832015.csv')
unemp9821 = pd.read_csv('Unemployment 19982021.csv')
unempcovid = pd.read_csv('Unemployment Covid.csv')
print(unemp8315)
print(unemp9821)
print(unempcovid)
monthlist = []
for i in unemp8315['Month']:
monthlist.append(i)
monthlist2 = []
for b in unemp9821['Month']:
monthlist2.append(b)
monthlist3 = []
for c in unempcovid['Month']:
monthlist3.append(c)
full_month_list = monthlist + monthlist2 + monthlist3
fullpd = pd.DataFrame(data=full_month_list)
clean_month_list = fullpd.drop_duplicates()
print(clean_month_list)
解决方案
你可以这样做:
files = ['Unemployment 19832015.csv',
'Unemployment 19982021.csv',
'Unemployment Covid.csv']
dfs = [pd.read_csv(file)["Month"] for file in files]
clean_month_list = pd.concat(dfs).drop_duplicates()
推荐阅读
- go - Gotest - 不能使用 []int 文字(类型 []int)作为字段值中的类型 args
- javascript - DOM className 属性在 setTimeout() 中不起作用
- java - 如何从另一个类中的 void 方法调用变量
- vue.js - 状态在 vuex 操作中未定义
- linux - 提取一列的一部分并使用 awk 保存到另一个文件中
- .net - ASP.NET MVC 中的路由约束
- java - JPA ManyToOne/OneToMany 双向获取重复数据
- c++ - 定义只调用私有函数的公共函数有什么好处
- python - 为什么我可以重新分配 dict.update 但不能重新分配 dict.__setitem__
- html - 我可以在三角形 div 中放置一个很棒的字体图标吗?