【问题标题】:Need a way to create pandas Dataframe from existing Dataframe需要一种从现有数据框创建熊猫数据框的方法
【发布时间】:2022-01-23 23:23:10
【问题描述】:

我有一个使用 csv 文件获取的数据框

df = pd.read_csv('data.csv')

我想选择这个 Dataframe 的一些行并创建一个新的 Dataframe,但是选择这些行的逻辑很复杂,需要在函数内部。并且此过滤器逻辑仅使用该行中的数据,而不使用 Dataframe 中任何其他行中的数据。那么如何使用这个过滤器函数创建一个新的 Dataframe 以便从这个 Dataframe 中选择行呢?

【问题讨论】:

    标签: python python-3.x pandas dataframe


    【解决方案1】:

    为什么你不只是一个布尔掩码之类的

    idxs = df[df['foo'] == 'bar'].index.to_list()
    df_slice = df.loc[idxs].copy()
    

    或者

    df_slice = df.query('col1 > 2 and col2 .....').copy()
    

    如果你真的需要对一行应用一个函数,我会这样做:

    # Define your function here which gets a series as input.
    
    def check_condition(s)
       if condition: 
            return 1
       return 0
    
    df['matches_cond'] = df[['foo', 'bar'...]].apply(
        lambda x: check_condition(x), axis=1)
    

    然后您可以使用 loc 或 query 再次切片。

    如果您需要不同的东西,请添加一个简短的数据示例和所需的输出

    【讨论】:

      猜你喜欢
      • 2021-06-02
      • 2022-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 2020-09-21
      • 2019-11-12
      相关资源
      最近更新 更多