2016-06-08 1 views
0

Я пытаюсь получить разницу между каждым элементом после чтения нескольких файлов csv. Каждый файл csv имеет 13 строк и 128 столбцов. Я пытаюсь получить столбцы разницыРазница между элементами при чтении из нескольких файлов

Я прочитал файлы с помощью

data = [pd.read_csv(f, index_col=None, header=None) for f in _temp] 

получить список всех образцов.

Согласно this, я должен использовать .diff(), чтобы получить разницу. Который идет что-то вроде этого

data.diff() 

Это работает, но вместо того, чтобы разница между каждой строкой в ​​том же образце, я получить разницу между строками одного образца к другому образцу.

Есть ли способ отделить это и позволить разницу произойти в каждом образце?

Редактировать

Ok я могу получить разницу между элементами данных, делая это

_local = pd.DataFrame(data) 

_list = [] 
_a = _local.index 

for _aa in _a: 
    _list.append(_local[0][_aa].diff()) 

flow = pd.DataFrame(_list, index=_a) 

я создаю слишком много DataFrames, есть лучший способ сделать это?

+0

Вы могли бы дать минимальный полный образец того, что 'data' выглядит после того, как вы его прочитали? –

+0

Просьба представить пример [MCVE], используя три 3-х мерных фрейма. – Alexander

+0

Если я правильно вас понимаю, вы хотите найти разницу между соседними столбцами данных. Скажите 'column [1] - column [0]' elementwise и так далее? –

ответ

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 
+0

Я получаю 'null', когда я запускаю код – Akshay

+0

Да все данные в df_diff показывают нуль – Akshay

+0

ОК. Что такое вывод 'df.shape'. Сначала я хочу убедиться, что вы правильно читаете файлы. Это должно быть (13, 128). – Alexander

1

Поскольку код работы вы должны реальный пост на https://codereview.stackexchange.com/

(PS. Ведущую «_» это на самом деле не вещий. Pls избежать. Это делает ваш код труднее читать.)

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

 Смежные вопросы

  • Нет связанных вопросов^_^