连接列表并删除重复项

时间:2021-03-03 10:01:52

标签: python pandas

我有三个电子表格,它们都有一个月/年列。电子表格之间存在一些重叠(即一份涵盖 1998 年至 2015 年,一份涵盖 2012 年至 2020 年)。我想要一个没有重复的所有月份/年份的组合列表。我已经做到了这一点,但我觉得必须有一种更简洁的方法来做到这一点。

Dataframes 有点相似:

<头>
VALUE
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)

3 个答案:

答案 0 :(得分:1)

你可以这样做:

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()

答案 1 :(得分:1)

无需遍历每个条目,您可以轻松连接数据框,选择月份列并删除那里的重复项

fullpd = pd.concat([unemp8315, unemp9821, unepmcovid], axis=0)
clean_month_list = fullpd['Month'].drop_duplicates()

答案 2 :(得分:0)

将它们加载到字典而不是列表中 dict[month] = value ?