【问题标题】:How to compare different dataframes by column and row?如何按列和行比较不同的数据帧?
【发布时间】:2022-11-17 06:26:27
【问题描述】:

我有两个 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))

【问题讨论】:

    标签: python pandas dataframe for-loop


    【解决方案1】:

    我建议你使用 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])
    

    【讨论】:

      猜你喜欢
      • 2021-11-20
      • 2022-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多