需要一种从现有数据框创建熊猫数据框的方法

Posted

技术标签:

【中文标题】需要一种从现有数据框创建熊猫数据框的方法【英文标题】: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 中选择行呢?

【问题讨论】:

【参考方案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 再次切片。

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

【讨论】:

以上是关于需要一种从现有数据框创建熊猫数据框的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何通过mysqldb将熊猫数据框插入数据库?

创建由多个数据框组成的多级熊猫数据框的最快方法是啥?

带有熊猫数据框的内连接循环,用于可能存在或不存在的各种组合[重复]

访问熊猫数据框的正确方法[重复]

如何提高熊猫数据框的列表理解速度

如何使用点绘制熊猫数据框的两列