2015-07-14 2 views
1

У меня есть dataframe с некоторыми значениями расколоть в разных столбцахзначения Объединить раскол в разных столбцах перезапись значения 0

enter image description here

Тогда я хочу, чтобы объединить все из них так, результат должен быть что-то вроде

enter image description here

проверить панда учебника, но я не мог найти что-то подобное

Наверное, не очень сложно, но я бег времени

+0

не ясно, если с является су m других столбцов или максимальное значение. Будет ли когда-нибудь только один ненулевой столбец в каждой строке? – chthonicdaemon

ответ

0

Вы можете использовать .max() и применять его по рядам, указав axis=1

import pandas as pd 

# your data 
# =========================== 
c1 = [0,0,0,0,2,7] 
c2 = [0,0,8,4,0,0] 
c3 = [5,3,0,0,0,0] 
df = pd.DataFrame(dict(C1=c1,C2=c2,C3=c3)) 

print(df) 


    C1 C2 C3 
0 0 0 5 
1 0 0 3 
2 0 8 0 
3 0 4 0 
4 2 0 0 
5 7 0 0 

# processing 
# =========================== 

df.max(axis=1) 

0 5 
1 3 
2 8 
3 4 
4 2 
5 7 
dtype: int64 
0

Вы можете просто позвонить sum и сумме строчные:

In [134]: 
df.sum(axis=1) 

Out[134]: 
0 5 
1 3 
2 8 
3 4 
4 2 
5 7 
dtype: int64 

Использование sum сделок с любым количеством 0 значений по строкам

+0

Отлично, но что, если я хочу только суммировать или взять максимум из определенных столбцов? Чтобы быть более точным, некоторые из них имеют одно и то же имя (повторяется), хотя значения разделены. Затем я хочу объединить повторяющиеся столбцы – gis20

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