2015-12-31 34 views
8

Tôi cần chia tất cả trừ các cột đầu tiên trong DataFrame theo cột đầu tiên.Chia nhiều cột theo một cột khác trong gấu trúc

Đây là những gì tôi đang làm, nhưng tôi tự hỏi, nếu đây không phải là "đúng" gấu trúc cách:

df = pd.DataFrame(np.random.rand(10,3), columns=list('ABC')) 

df[['B', 'C']] = (df.T.iloc[1:]/df.T.iloc[0]).T 

Có cách nào để làm một cái gì đó giống như df[['B','C']]/df['A']? (Điều đó chỉ cung cấp một khung dữ liệu 10x12 của nan.)

Ngoài ra, sau khi đọc một số câu hỏi tương tự về SO, tôi đã thử df['A'].div(df[['B', 'C']]) nhưng điều đó gây ra lỗi phát sóng.

Trả lời

17

Tôi tin rằng df[['B','C']].div(df.A, axis=0)df.iloc[:,1:].div(df.A, axis=0) hoạt động.

Các vấn đề liên quan