我有一個csv,看起來像這樣之間:熊貓據幀 - 找到最大的兩列
Students | Math | Reading
Tom | 80 | 75
Mike | 65 | 90
我想導入這個CSV並確定哪些Student
都有自己Math
和Reading
分數之間的差異最大。
在這個例子中。我期望Mike
是因爲他的差異是25
,而湯姆的差異是15
。
我有一個csv,看起來像這樣之間:熊貓據幀 - 找到最大的兩列
Students | Math | Reading
Tom | 80 | 75
Mike | 65 | 90
我想導入這個CSV並確定哪些Student
都有自己Math
和Reading
分數之間的差異最大。
在這個例子中。我期望Mike
是因爲他的差異是25
,而湯姆的差異是15
。
您希望Student
成爲數據幀的索引。用你給的樣本數據,我會像這樣導入它。
df = pd.read_csv('test.csv', sep='\s*\|\s*', engine='python', index_col=0)
當它看到零個或多個空格,隨後豎線後跟零個或多個空格這將分開的列。它也將SE中的指數是Students
列
現在你可以用它來找到Student
各自的Math
和Reading
分數之間的最大差值的絕對值。
df.Math.sub(df.Reading).abs().idxmax()
'Mike'
感謝您的快速響應。所以,如果我從csv文件中讀取具有多行和多列的數據幀。每一行都是一個學生,有兩列像數學和閱讀成績。我如何找到數學和閱讀最大區別的學生?我試過這個,它不起作用。 – art
@art我給你一個可以工作的例子。當你問一個如此細微的問題時,你就有責任根據你的情況調整我的建議。如果您在此方面遇到困難,請將它放在我身上並使用示例數據編輯您的問題。告訴我你認爲輸出應該是什麼樣子。事情不可能從「數學」不是大寫的那麼簡單。我如何知道,除非你告訴我具體情況 – piRSquared
感謝您的幫助piRSquared。我對熊貓和這個網站都很新。所以如果我有這樣的列表。學生|數學|閱讀第一行;湯姆| 80 |第二排75人;邁克| 65 | 90排在第三排....找出哪些學生的數學和閱讀分數最大的區別是什麼?我試過這個,它不起作用df(df ['Math'] - df ['Reading'])。argmax() – art
創建一個不同的列,然後是'abs()。max()'那一列。 – AChampion