【Python】Pandas DataFrame 删除带有特定值的行,两个表格的数据对齐

1.问题
两个数据表,长度不一样。第一个表格中的数据比第二个表格中多出些行,要以第二个表格的数据为准,删掉第一个表格中多余的数据。

【Python】Pandas DataFrame 删除带有特定值的行,两个表格的数据对齐_第1张图片

 2.解决思路
两个数据的第一列,也就是时间 ['DateTime'] 格式是一样的,先遍历,对比两个表格中不一致的时间,将不一致的加入到一个列表 DateTime 里。

close = pd.read_csv(r'C:\Users\admin\Desktop\wind_data\sz_hs_close.csv', encoding='utf-8',engine='python')
ytm = pd.read_csv(r'C:\Users\admin\Desktop\wind_data\10y_ytm_ChinaCoin.csv', encoding='utf-8',engine='python')

DateTime = []
for i in list(ytm['DateTime']):
    if i not in list(close['DateTime']):
        print(i)
        DateTime.append(i)

然后用下面这行代码将多余的值的行去掉。

ytm = ytm[~ytm['DateTime'].isin(DateTime)]

3.结果
两列数据对齐了
【Python】Pandas DataFrame 删除带有特定值的行,两个表格的数据对齐_第2张图片

 4.代码

# -*- coding: utf-8 -*-
from operator import index
import pandas as pd

close = pd.read_csv(r'C:\Users\admin\Desktop\wind_data\sz_hs_close.csv', encoding='utf-8',engine='python')
ytm = pd.read_csv(r'C:\Users\admin\Desktop\wind_data\10y_ytm_ChinaCoin.csv', encoding='utf-8',engine='python')

DateTime = []
for i in list(ytm['DateTime']):
    if i not in list(close['DateTime']):
        print(i)
        DateTime.append(i)

ytm = ytm[~ytm['DateTime'].isin(DateTime)]

print(ytm)
print(len(close))
print(len(ytm))

你可能感兴趣的:(Python数据分析,Python,python,数据分析,量化交易)