çözümünü göstermek için küçük bir örnek dataframe yaratalım:
np.random.seed(0)
df = pd.DataFrame(np.random.rand(6, 3))
>>> df
0 1 2
0 0.548814 0.715189 0.602763
1 0.544883 0.423655 0.645894
2 0.437587 0.891773 0.963663
3 0.383442 0.791725 0.528895
4 0.568045 0.925597 0.071036
5 0.087129 0.020218 0.832620
ilk satırda (::2
) başlayarak ve ikinci sıranın (1::2
) başlayarak her iki satırdan seçmek için dilim biçimi kullanabilirsiniz. iloc
tamsayı endeksleme içindir. Bu konumlardaki değerleri seçmeniz ve bunları birlikte eklemeniz gerekir. Sonuç, gerektiğinde tekrar DataFrame'e dönüştürebileceğiniz bir sayı dizisidir.
>>> df.iloc[::2].values + df.iloc[1::2].values
array([[ 1.09369669, 1.13884417, 1.24865749],
[ 0.82102873, 1.68349804, 1.49255768],
[ 0.65517386, 0.94581504, 0.9036559 ]])
İndekslemeyi kaldırmak için değerleri kullanırsınız.
>>> df.iloc[::2] + df.iloc[1::2].values
0 1 2
0 1.093697 1.138844 1.248657
2 0.821029 1.683498 1.492558
4 0.655174 0.945815 0.903656
>>> df.iloc[::2].values + df.iloc[1::2]
0 1 2
1 1.093697 1.138844 1.248657
3 0.821029 1.683498 1.492558
5 0.655174 0.945815 0.903656
daha genel çözüm için:
df = pd.DataFrame(np.random.rand(9, 3))
n = 3 # Number of consecutive rows to group.
df['group'] = [idx // n for idx in range(len(df.index))]
df.groupby('group').sum()
0 1 2
group
0 1.531284 2.030617 2.212320
1 1.038615 1.737540 1.432551
2 1.695590 1.971413 1.902501
örnek bir temsilci girişi eklemek Could Bu aksi ne olduğudur? – Divakar
Bir veri çerçevesinde satır ve sütun var. Yukarıdaki satırlara yaptığınız referansın, açıkça belirtilmiş satırlar olduğu için aslında sütunlar olduğunu varsayalım. Ancak, yukarıdaki örnek kodunuz sütun çiftleri ekliyor. – Alexander