當我想看到 df 在資料集中找到空值時,這就是我得到的。
df.isnull().sum()
BAD 0
LOAN 0
MORTDUE 518
VALUE 112
REASON 252
JOB 279
YOJ 515
DEROG 708
DELINQ 580
CLAGE 308
NINQ 510
CLNO 222
DEBTINC 1267
dtype: int64
接下來,當我使用這個 df 創建一個資料框時,我得到如下。
df2 = pd.DataFrame(df.isnull().sum())
df2.set_index(0)
df2.index.name = 無
0
BAD 0
LOAN 0
MORTDUE 518
VALUE 112
REASON 252
JOB 279
YOJ 515
DEROG 708
DELINQ 580
CLAGE 308
NINQ 510
CLNO 222
DEBTINC 1267
為什么輸出中會出現額外的行,我該如何洗掉它?。我看到了一個正常的測驗,使用 df 并且我能夠使用它(使用 set_index(0) 和 df.index.name = None 并且能夠洗掉額外的行。但這對創建的資料幀 df2 不起作用。
uj5u.com熱心網友回復:
您可能已經知道,在您的輸出中作為“額外行”出現的額外零實際上是列名稱的標題。創建 DataFrame 時,如果您想要比列名的默認“0”更具描述性的內容,請嘗試傳遞列名:
df2 = pd.DataFrame(df.isnull().sum(), columns=["Null_Counts"])
與您從這兩個變體中獲得的差異相同:
print(pd.DataFrame([0,1,2,3,4,5]))
0
0 0
1 1
2 2
3 3
4 4
5 5
對比
print(pd.DataFrame([0,1,2,3,4,5], columns=["My_Column"]))
My_Column
0 0
1 1
2 2
3 3
4 4
5 5
而且,如果您只是不希望標題行顯示在您的輸出中,這似乎是您的問題的意圖,那么您可以執行類似的操作,僅使用索引值和計數值來創建任何輸出你想要的格式:
df1 = pd.DataFrame([0,1,2,3,4,5], columns=["My_Column"])
for tpl in zip(df1.index.values, df1["My_Column"].values):
print("{}\t{}".format(tpl[0], tpl[1]))
輸出:
0 0
1 1
2 2
3 3
4 4
5 5
如果您只想在沒有標題行的某處列印或保存 CSV 輸出,您還可以使用 DataFrame 函式 to_csv() 并傳遞 header=False :
print(df1.to_csv(header=False))
0,0
1,1
2,2
3,3
4,4
5,5
如果您更喜歡制表符而不是逗號分隔的輸出,您還可以將 sep="\t" 傳遞給 to_csv 函式呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/400754.html
