【发布时间】:2022-11-16 23:54:23
【问题描述】:
我有两个 csv 文件,每个文件有 200 列。这两个文件的行数和列数完全相同。我想分别比较每一列。
这个想法是将文件“a”的第 1 列值与文件“b”的第 1 列值进行比较,并检查列中所有数字的差异等等(有 100 行)并写出一个数字有多少案例差异大于 3。
我想对所有列重复相同的操作。我知道它应该是一个双 for 循环,但我不知道具体是怎么做的。可能有 2 个 for 循环,但不知道该怎么做......
提前致谢!
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))
【问题讨论】:
-
请阅读问题,它们都没有帮助
-
您能否提供一些示例输入和预期输出?您说解决方案“应该是双
for循环”——pandasfor 循环很少是最佳选择。 df.compare 几乎可以肯定是解决方案中的关键构建块。 -
当您说“写出在多少情况下差异大于 3 的数字”时——如果您将
[1, 2, 3, 6, 7, 8]与[0, 0, 0, 0, 5, 5]进行比较,您期望输出什么?1(因为只有6-0与另一个列表中的比较相同元素的距离超过 3 个?或5(如果超过 3 个不同的值不同,则所有不同值的计数) ? 或者是其他东西? -
确切地说,我想要一个数字作为每个比较列的输出。
标签: python pandas dataframe for-loop