首页 > 解决方案 > 使用Python获取列的两个值之间的行

问题描述

假设有如下数据框:

df = {
'Period': [1996,'Jan','Feb','March',1997,'Jan','Feb','March',1998,'Jan','Feb','March']
'Some-Values': [,'a','b','c',,'d','e','f',,'g',h','i']
}

1996并且需要提取值之间的行,1997以便生成的数据框如下:

df_res = {
    'Period': ['Jan','Feb','March']
    'Some-Values': ['a','b','c']
}

我目前正在为此尝试 Pandas,但无法找到解决方案。

标签: pythonpython-3.xpandasdataframe

解决方案


尝试将您的数据框更改为“正确”的方式,然后我们可以通过使用年份信息来获取信息

df['Year']=df.loc[df['Some-Values']=='','Period']
df.Year=df.Year.ffill()
df=df.loc[df.Period!=df.Year,:]
df.loc[df.Year==1996,:]
Out[651]: 
  Period Some-Values  Year
1    Jan           a  1996
2    Feb           b  1996
3  March           c  1996

推荐阅读