Trong DataFrame của tôi, tôi muốn cắt giá trị của một cột cụ thể giữa 0 và 100. Ví dụ, đưa ra như sau:Pandas có thể thực hiện các hàm min() và max() theo hàng khôn ngoan không?
a b
0 10 90
1 20 150
2 30 -30
Tôi muốn nhận được:
a b c
0 10 90 90
1 20 150 100
2 30 -30 0
Tôi biết rằng trong Pandas hoạt động số học nhất định làm việc trên các cột. Ví dụ, tôi có thể tăng gấp đôi mỗi số trong cột b
như vậy:
>>>df["c"] = df["b"] * 2
>>>df
a b c
0 10 90 180
1 20 150 300
2 30 -30 -60
Tuy nhiên điều này không làm việc cho các chức năng tích hợp như min
và max
:
>>>df["c"] = min(100, max(0, df["b"]))
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Có một số cách để thực hiện những gì tôi muốn có hiệu quả?
thử điều này: 'df.max (trục = 1)' – MaxU