Как добавить первые строки из двух разных столбцов блока данных вместе, так что если первая строка столбца A равна NaN
, замените на значение из первой строки balance
, в противном случае, добавьте первую строку столбца A и первую строку balance
. И так же, как и столбец B. Идея заключается в использовании первой строки строки balnce
для преобразования первой строки других столбцов «A» и «B». Я попытался использовать df.iloc[0]
, чтобы получить первую строку, но я не могу установить значение или добавить его:Как добавить значения из двух разных столбцов pandas dataframe
data = {'id': [1, 2, 3, 4, 5, 6],
'A': [None, None, 20, 10, 39, 30],
'B': [13, 98, 23, 45, 64, 10],
'balance': [23, 41, 12, 22, 32, 0]}
df = pd.DataFrame(data)
df = df.set_index('id')
print df
A B balance
id
1 NaN 13 23
2 NaN 98 41
3 20 23 12
4 10 45 22
5 39 64 32
6 30 10 0
for i in df.columns:
if i not in ['balance']:
if df[i].iloc[0] == None:
df[i].iloc[0] = df['balance'].iloc[0]
else:
df[i].iloc[0] = df[i].iloc[0] + df['balance'].iloc[0]
print df[i]
id
1 NaN
2 NaN
3 20
4 10
5 39
6 30
Name: A, dtype: float64
id
1 36
2 98
3 23
4 45
5 64
6 10
Name: B, dtype: int64
#A[0] should be 23, and B[0] should be 13 + 23 = 36
желаемый результат:
id A B balance
1 23 36 23
2 NaN 98 41
3 20 23 12
4 10 45 22
5 39 64 32
6 30 10 0
Только первая строка? – ayhan
Ваше объяснение прозы не соответствует вашему образцу кода. Вы устанавливаете * A * на * баланс *, когда * A * пуст. – chrisaycock
Какой желаемый выход? Колонковый баланс? – jezrael