【问题标题】:Extract specific row values out of a data frame from row values of another dataframe [duplicate]从另一个数据帧的行值中提取数据帧中的特定行值[重复]
【发布时间】:2019-04-25 19:10:37
【问题描述】:

我有一个这样的数据框 (df1):

           X        Y
1          200.0    50            
2          200.1    57    
3          200.2    69
4          200.3    77
5          200.5    84
6          200.6    93

我有另一个像这样的数据框 (df2):

           X
1          200.0                
2          200.5    

我想将与 df2 的 X 值匹配的 df1 的 Y 值提取到 df2 中,如下所示:

           X        Y
1          200.0    50                 
2          200.5    84

如何解决这个问题,例如 pandas 和 numpy ?不幸的是,我对 python 很陌生,我不知道。

谢谢。

最好的问候, DocSnyda

【问题讨论】:

    标签: pandas dataframe data-extraction


    【解决方案1】:

    pd.merge()是当“在另一个df中查找内容”的要求出现时我们首先想到的,但df.loc[]本身也确实具有“查找内容”的含义。

    """set the df1 and df2 up """
    import pandas as pd
    import numpy as np
    
    s ="""20000
    20000
    20000
    200.4
    200.5
    200.6"""  
    df1 = pd.DataFrame(s.split('\n'), columns=['X'])
    
    df1['Y'] = """50
    57
    69
    77
    84
    93""".split('\n')
    
    df2 = df1.iloc[[0, 5], :]
    df2 = df2.drop(columns=['Y'])
    print(df1)
    print(df2)
    
    
    
    """ the anwser to your question here: """
    print(
        df1.loc[df1.X.isin(df2.X), :].drop_duplicates(subset='X')
    )
    

    【讨论】:

    • 非常感谢,这很好用!!有没有办法避免提取双 X 值?有一些行具有相同的 X 值,我只想提取其中之一。提取哪个 X 值并不重要,因为它们是相同的。
    • 已编辑以满足新要求。请记得接受并投票。谢谢
    猜你喜欢
    • 2017-11-18
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多