gpt4 book ai didi

python - 扫描数据帧的行以获取特定值

转载 作者:太空宇宙 更新时间:2023-11-04 00:27:20 25 4
gpt4 key购买 nike

我是新手 pandas我有一个以下数据框,其形式为 Attribute 及其相应的 Value 分布在整个工作表上

    attr1   val1   attr2    val2    attr3   val3    attr4   val4
0 APPL abc DES tool comp Wind
1 APPL ABC DES tool comp Wind
2 Serial f1 APPL MAC des Service
3 Serial f1 category male APPL MAC DES tool
4 Serial f1 APPL abc DES Service
5 APPL ABC DES Service

我必须从数据框中提取 Attribute = APPL 和 Attribute = DES 的值,并按照以下方式将其存储在另一个数据框中

    Value1           value2
Value for appl Value for des
0 abc tool
1 ABC tool
2 MAC Service
3 MAC tool
4 abc Service
5 ABC Service

最佳答案

这里有一种方法可以做到这一点

# For the sake of case insensitivity convert values to lower. 
# Then check if appl and des present in the dataframe .isin gives boolean mask.
# Since you want the next values shift the bool.
mask = df.astype(str).apply(lambda x:x.str.lower()).isin(['appl','des']).T.shift().T.fillna(False)


cols ={'attr1':'AAPL','val1':'DES'}

#Sort the values based on nans , then drop the nan columns
df[mask].apply(lambda x : sorted(x,key=pd.isnull),1).dropna(1).rename(columns=cols)

输出:

  AAPL      DES0  abc     tool1  ABC     tool2  MAC  Service3  MAC     tool4  abc  Service5  ABC  Service

关于python - 扫描数据帧的行以获取特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47001305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com