Ich versuche, Werte in Spalten einzuordnen und die Ränge den Werten aus der ersten Spalte ['Tickers']
zuzuweisen. Für einige Spalten möchte ich kleinere Werte einen höheren Rang und für ['Dividend']
würde Rang normalerweise und speichern vorzugsweise diejenigen Reihen in neuen Datenrahmen können also sagen, ich habe diese Datenrahmen:Rangfolge Datenrahmenspalten
Ticker P/E P/S P/B P/FCF Dividend
No.
1 NTCT 457.32 3.03 1.44 26.04 -
2 GWRE 416.06 9.80 5.33 45.62 -
3 PEGA 129.02 4.41 9.85 285.10 0.0128
4 BLKB 87.68 4.96 14.36 41.81 0.0062
Zuerst habe ich fehlende Werte mit 0
ersetzendf=df.replace('-',0)
Dann würde ich sie Rang und neue Datenrahmen:
Ticker P/E Dividend
No.
1 NTCT 4 3
2 GWRE 3 3
3 PEGA 2 1
4 BLKB 1 2
ich war th Einfärben über scipy Statistiken mit rankdata auf Spalten (dh: rankdata(df['P/E'], method='ordinal')
), aber es gab einen Fehler zurück:
TypeError: '>' not supported between instances of 'int' and 'NavigableString'
Haben Sie versucht, die ['.rank()'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rank.html) Methode für DataFrames verfügbar? – Craig
Nebenbei: Die NavigableString-Erwähnung lässt mich glauben, dass Sie Daten von BeautifulSoup oder einem anderen Ort haben. Hast du HTML analysiert? Sie sollten sicherstellen, dass Sie Python-Zeichenfolgen (oder Zahlen, wenn die Zeichenfolgen Zahlen darstellen) anstelle von DataFrames verwenden. Andernfalls werden Sie ein seltsames Verhalten erhalten. – DSM