<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          15個基本且常用Pandas代碼片段

          共 4646字,需瀏覽 10分鐘

           ·

          2023-09-07 22:17

          Pandas提供了強大的數(shù)據(jù)操作和分析功能,是數(shù)據(jù)科學的日?;竟ぞ?。在本文中,我們將介紹最常用的15個Pandas代碼片段。這些片段將幫助簡化數(shù)據(jù)分析任務,從數(shù)據(jù)集中提取有價值的見解。

          ?

          1、過濾數(shù)據(jù)

          Pandas提供了多種方法來過濾數(shù)據(jù)。

           import pandas as pd
           
           # Create a DataFrame
           data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
                  'Age': [25, 30, 35, 40]}
           
           df = pd.DataFrame(data)
           
           # Filter rows where Age is greater than 30
           filtered_df = df[df['Age'] > 30]
           print(filtered_df)

          2、分組和聚合數(shù)據(jù)

           # Grouping by a column and calculating the mean
           grouped = df.groupby('Age').mean()
           print(grouped)

          3、數(shù)據(jù)缺失值

           # Check for missing values
           missing_values = df.isnull().sum()
           
           # Fill missing values with a specific value
           df['Age'].fillna(0, inplace=True)

          4、將函數(shù)應用于列

          apply() 函數(shù)允許在 DataFrame 的行或列上應用自定義函數(shù),以實現(xiàn)更復雜的數(shù)據(jù)處理和轉換操作。

           df['Age'] = df['Age'].apply(lambda x: x * 2)

          5、連接DataFrames

          這里的連接主要是行的連接,也就是說將兩個相同列結構的DataFrame進行連接

           # Concatenate two DataFrames
           df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
           df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
           
           result = pd.concat([df1, df2], ignore_index=True)
           print(result)

          6、合并DataFrames

          這里的合并指的是列的合并,也就是說根據(jù)一個或若干個相同的列,進行合并

           # Merge two DataFrames
           left = pd.DataFrame({'key': ['A', 'B', 'C'], 'value': [1, 2, 3]})
           right = pd.DataFrame({'key': ['B', 'C', 'D'], 'value': [4, 5, 6]})
           
           merged = pd.merge(left, right, on='key', how='inner')
           print(merged)

          7、數(shù)據(jù)透視表

          pivot_table 是用于數(shù)據(jù)透視的重要函數(shù)之一。它根據(jù)一個或多個列的值對數(shù)據(jù)進行重新排列和匯總,以便更好地理解數(shù)據(jù)的結構和關系。

           # Creating a pivot table
           pivot_table = df.pivot_table(index='Name', columns='Age', values='Value')
           print(pivot_table)

          8、處理時間/日期類型數(shù)據(jù)

           # Converting a column to DateTime
           df['Date'] = pd.to_datetime(df['Date'])

          9、數(shù)據(jù)重塑

          pandas.melt() 是用于將寬格式(wide format)的數(shù)據(jù)表格轉換為長格式(long format)。這個函數(shù)通常用于數(shù)據(jù)重塑(data reshaping)操作,以便更容易進行數(shù)據(jù)分析和可視化。

           pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)

          參數(shù)說明:

          • frame:要進行重塑操作的數(shù)據(jù)表格(DataFrame)。

          • id_vars:需要保留的列,它們將成為長格式中的標識變量(identifier variable),不被"融化"。

          • value_vars:需要"融化"的列,它們將被整合成一列,并用新的列名表示。

          • var_name:用于存儲"融化"后的列名的新列的名稱。

          • value_name:用于存儲"融化"后的值的新列的名稱。

          • col_level:如果輸入數(shù)據(jù)是多級索引(MultiIndex),則可以指定在哪個級別上應用"融化"操作。

          下面是一個示例,演示如何使用 melt() 函數(shù)將寬格式數(shù)據(jù)轉換為長格式,假設有以下的寬格式數(shù)據(jù)表格 df

              ID  Name  Math  English  History
           0   1   Amy   90       85       88
           1   2   Bob   78       92       76
           2   3 John   88       79       90

          我們要將 Math、EnglishHistory 列"融化"為一個長格式數(shù)據(jù)表格,可以這樣做:

           melted_df = pd.melt(df, id_vars=['ID', 'Name'], value_vars=['Math', 'English', 'History'], var_name='Subject', value_name='Score')

          轉換后的長格式數(shù)據(jù)表格 melted_df 如下所示:

              ID  Name  Subject  Score
           0   1   Amy     Math     90
           1   2   Bob     Math     78
           2   3 John     Math     88
           3   1   Amy English     85
           4   2   Bob English     92
           5   3 John English     79
           6   1   Amy History     88
           7   2   Bob History     76
           8   3 John History     90

          通過這種方式,你可以將寬格式數(shù)據(jù)表格中的多列數(shù)據(jù)整合到一個列中,以更容易進行分析、可視化或其他操作。melt() 函數(shù)在數(shù)據(jù)清洗和轉換階段非常有用。

          melt() 或者可以理解為上面pivot_table 或者unstack的反操作。

          10、分類數(shù)據(jù)

          astype('category') 是用于將一列數(shù)據(jù)類型轉換為分類(Category)類型的方法。將數(shù)據(jù)列轉換為分類類型有助于節(jié)省內存和提高性能,特別是當數(shù)據(jù)列中包含有限的不同取值時。

           # Encoding categorical variables
           df['Category'] = df['Category'].astype('category')
           df['Category'] = df['Category'].cat.codes

          11、數(shù)據(jù)抽樣

           # Randomly sample rows from a DataFrame
           sampled_df = df.sample(n=2)

          12、計算累加和

           # Calculating cumulative sum
           df['Cumulative_Sum'] = df['Values'].cumsum()

          13、刪除重復的數(shù)據(jù)

           # Removing duplicate rows
           df.drop_duplicates(subset=['Column1', 'Column2'], keep='first', inplace=True)

          14、創(chuàng)建虛擬變量

          pandas.get_dummies() 是 Pandas 中用于執(zhí)行獨熱編碼(One-Hot Encoding)的函數(shù)。

           # Creating dummy variables for categorical data
           dummy_df = pd.get_dummies(df, columns=['Category'])

          15、數(shù)據(jù)導出

          有很多個to方法,可以到導出不同的格式

           # Exporting DataFrame to CSV
           df.to_csv('output.csv', index=False)

          總結

          以上這15個Pandas代碼片段是我們日常最常用的數(shù)據(jù)操作和分析操作。熟練的掌握它,并將它們合并到工作流程中,可以提高處理和探索數(shù)據(jù)集的效率和效果。


          作者:pythonfundamentals

          瀏覽 299
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  特黄AAAAAAAA免费观看视频 | 操18p | 天天操b视频 | 亚洲免费视频欧洲免费视频 | 亚洲视频ⅴ√ |