多个数据集pandas之间搜索字符串及返回值等操作

问题描述 投票:0回答:1

例如我有 4 个数据框 DM=

Roll  marks  grade  section
> 123     56.    Fair.  A
> 789     70.    Good.  A
> 445     89.    Good.  C
> 675     45.    Fair   b

Db=

Team. Sports.   Score
> Kings. Baseball. 100
> Titans. Rugby.    100 
> Jags.   Basketball 40
> Knights cricket.   80
> Boys.   Hockey.    70

Ds=

Roll. Subject. Marks  test
> 123  Maths.  100.   Annual 
> 456   Chem.   89.    Term 
>  789  Bio     56    annual 
> 556   Code.   70.    Half

Df=

Name. Age.   Class  
> Jay.   15.    8.   
> Ron.   13.     7    
> Kelly.  14     8    
> May.   16.   10.   

我需要检查列 dm['grade'] 是否公平,创建一个具有列和值的数据集

Final= {'activities': db['sports], 'student score': db['score']}

Else if dm['grade'] is good then return values as
> Final= {'type': db['team'], 'student score': df['class']}

我试过了

If dm['grade'] is fair:

但没有得到正确的结果

还需要找到 Dm 和 ds 之间的总分和分数。

我还需要将所有数据帧合并为一个,以便更容易到达滚动和标记,但不会发生,因为这些在所有数据帧中并不常见。

我尝试了

>pandas.concat(,axis=1)
但没有完美的输出

pandas string dataframe
1个回答
0
投票

您首先需要

concat
所有数据框:

united_df = pd.concat([Dm, Db, Ds, Df], axis = 1)

然后根据您的标准进行过滤:

fair_df = united_df[united_df['grade'] == 'fair']
good_df = united_df[united_df['grade'] == 'good']

然后在每个数据框中,您可以删除列 (

pd.drop
) 或重命名列 (
pd.rename
)

© www.soinside.com 2019 - 2024. All rights reserved.