我的資料如下:
import pandas as pd
url_cities="https://population.un.org/wup/Download/Files/WUP2018-F12-Cities_Over_300K.xls"
df_cities = pd.read_excel(url_cities)
print(df_cities.iloc[0:20,])
列名可以在第 15 行找到,但我希望自動確定此行號。我認為最好的方法是在少于 10 個專案的情況下取值為非 Nan 的第一行。
我結合了這個答案,找到了這個答案來執行以下操作:
amount_Nan = df_cities.shape[1] - df_cities.count(axis=1)
# OR df.isnull().sum(axis=1).tolist()
print(amount_Nan)
col_names_index = next(i for i in amount_Nan if i < 3)
print(col_names_index)
df_cities.columns = df_cities.iloc[col_names_index]
問題是col_names_index不斷回傳0,而它應該是15。我認為這是因為amount_Nan回傳的行和列的next(i for i in amount_Nan if i < 3)作業方式與預期不同。
問題是我真的不明白為什么。任何人都可以幫忙嗎?
uj5u.com熱心網友回復:
DataFrame.ilocIIUC,您可以通過withSeries.notna和獲得每秒非缺失值的第一個索引,Series.idxmax通過該行設定列名并通過索引過濾掉該行之前的值:
i = df_cities.iloc[:, 1].notna().idxmax()
df_cities.columns = df_cities.iloc[i].tolist()
df_cities = df_cities.iloc[i 1:]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/479950.html
上一篇:錯誤“顏色?”型別的值不能在顫動中分配給“顏色”型別的變數
下一篇:使用列數可視化線圖
