Powiedzmy, że mam
r = pd.DataFrame({"A":1 ,
"B":pd.Series(1,index=list(range(4)),dtype="float32")})
I r["B"].describe()[["mean","std","min","max"]]
daje wynik:
mean 1.0
std 0.0
min 1.0
max 1.0
Name: B, dtype: float64
Ale z powyższego wyniku, jak powinienem się pozbyć lub stłumić ostatnią linię " Name:B, dtype: float64
"
Wymyśliłem jeden sposób, aby to osiągnąć
x=r["B"].describe()[["mean","std","min","max"]]
print "mean ",x["mean"],"nstd ",x["std"],"nmin ",x["min"],"nmax ",x["max"]
który daje pożądaną wydajność:
mean 1.0
std 0.0
min 1.0
max 1.0
Czy istnieje jakiś środek czyszczący do osiągnięcia tego wyniku bezpośrednio z pd.describe ()
Odpowiedzi:
5 dla odpowiedzi № 1Jeśli potrzebujesz wyjścia jako DataFrame
Dodaj reset_index
:
x=r["B"].describe()[["mean","std","min","max"]].reset_index()
print (x)
index B
0 mean 1.0
1 std 0.0
2 min 1.0
3 max 1.0
A następnie użyj DataFrame.to_string
:
print (x.to_string(header=None, index=None))
mean 1.0
std 0.0
min 1.0
max 1.0
4 dla odpowiedzi nr 2
lepszą odpowiedź
posługiwać się to_csv
na ramie danych
rd = r.B.describe()[["mean","std","min","max"]].reset_index()
print(rd.to_csv(header=None, index=None, sep="t"))
mean 1.0
std 0.0
min 1.0
max 1.0
stara odpowiedź
for name, value in r["B"].describe()[["mean","std","min","max"]].iteritems():
print("{:<5s} {:2.1f}".format(name, value))
mean 1.0
std 0.0
min 1.0
max 1.0