从多个文件读取时元素之间的差异

时间:2016-06-08 02:27:32

标签: python-3.x pandas

我试图在读取多个csv文件后获得每个元素之间的差异。每个csv文件有13行和128列。我试图获得列式差异

我使用

读取文件
i_tm

我得到了所有样本的清单。

根据this,我必须使用data = [pd.read_csv(f, index_col=None, header=None) for f in _temp] 来获得差异。这就是这样的事情

.diff()

这可行,但不是在同一样本中的每一行之间得到差异,而是得到一个样本的每一行与另一个样本之间的差异。

有没有办法将其分开并让每个样本中发生差异?

修改

好的,我可以通过这样做来获得数据元素之间的区别

data.diff()

我创建了太多的DataFrame,有没有更好的方法呢?

2 个答案:

答案 0 :(得分:1)

这是一种相对有效的方法,一次一个地读取数据帧并计算它们存储在列表df_diff中的差异。

df_diff = []
df_old = pd.read_csv(_temp[0], index_col=None)
for f in _temp[1:]:
    df = pd.read_csv(f, index_col=None)
    df_diff.append(df_old - df)
    df_old = df

答案 1 :(得分:1)

由于您的代码有效,您应该在https://codereview.stackexchange.com/

上发帖

(PS。领先" _"不是真正的pythonic。请避免。这会让您的代码更难阅读。)

_local = pd.DataFrame(data)
_list  = [ _local[0][_aa].diff() for _aa in _local.index ]
flow   = pd.DataFrame(_list, index=_local.index )