pandas 如何按列和行比较不同的 Dataframe ?

knpiaxh1  于 2022-11-20  发布在  其他
关注(0)|答案(1)|浏览(158)

我有两个csv文件,每个文件有200列。这两个文件的行数和列数完全相同。我想分别比较每个列。
这个想法是将文件“a”的第1列值与文件“b”的第1列值进行比较,并检查该列中所有数字的差异等(有100行),并写出一个数字,说明在多少情况下差异大于3。
我想重复同样的所有专栏。提前感谢!

import pandas as pd
    dk = pd.read_csv('C:/Users/D/1_top_a.csv', sep=',', header=None)
    dk = dk.dropna(how='all')
    dk = dk.dropna(how='all', axis=1)
    print(dk)
    
    dl = pd.read_csv('C:/Users/D/1_top_b.csv', sep=',', header=None)
    dl = dl.dropna(how='all')
    dl = dl.dropna(how='all', axis=1)
    print(dl)
    
    rows=dk.shape[0]
    print(rows)
    for i
    print(dk._get_value(0,0))
5t7ly7z5

5t7ly7z51#

我建议您使用DataFrame的iloc属性:

import pandas as pd

dk = pd.read_csv('C:/Users/D/1_top_a.csv', sep=',', header=None)
dk = dk.dropna(how='all')
dk = dk.dropna(how='all', axis=1)
print(dk.head())

dl = pd.read_csv('C:/Users/D/1_top_b.csv', sep=',', header=None)
dl = dl.dropna(how='all')
dl = dl.dropna(how='all', axis=1)
print(dl.head())

for row in range(len(dl)):
    for col in range(len(dl.columns)):
        if dl.iloc[row, col] != dk.iloc[row, col]:
            print(dk.iloc[row, col])

相关问题