簡體   English   中英

創建 Pandas DataFrame 時向行和列名稱添加“名稱”屬性

[英]Add 'name' properties to row and column names when creating a pandas DataFrame

我正在創建一個 Pandas 數據框來了解如何處理丟失的數據。 我想要的是在創建 DataFrame 時將 Row 和 Column 名稱添加到 DataFrame 中,而不是稍后使用 'df.index.name =' 和 'df.columns.name =' 傳遞它們。 我怎樣才能做到這一點?

# Program to generate a m x n DataFrame with random NaN values scattered in:
import random
def df_maker(m, n): 
    df = pd.DataFrame(np.random.randint(1, 100, (m*n)).reshape(m, n), index = [f'Row {i+1}' for i in range(m)], columns = [f'Col {j+1}' for j in range(n)] )
    for i in range(m):
        df.iloc[[i],[random.randrange(n)]] = np.nan
    return df
df = df_maker(10, 10) 
df.index.name = 'Rows'
df.columns.name = 'Columns'
df

我嘗試查找pandas.DataFramepandas.DataFrame.rename_axis和其他一些方法的文檔,但找不到我要找的內容。 那么如何在不使用df.index.name = 'Rows'df.columns.name = 'Columns'情況下用 1 行代碼創建上述數據df.columns.name = 'Columns' 謝謝。

創建分別代表行和列的Index對象:

def df_maker(m, n):
    index = pd.Index([f'Row {i + 1}' for i in range(m)], name='Rows')
    columns = pd.Index([f'Col {i + 1}' for i in range(n)], name='Columns')
    df = pd.DataFrame(np.random.randint(1, 100, size=(m, n)), index=index, columns=columns)
    # rest of your code here

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM