【问题标题】:Crate new row depends on 2 columns [duplicate]创建新行取决于 2 列 [重复]
【发布时间】:2022-11-24 16:29:58
【问题描述】:

如果第 1 列是年份且第 3 列 < 2010,则年份行之后需要一个新行作为年份期间,然后年份期间的列值低于 2010 与其他行相同

  Column1  Column2 ColumnX  Column3
0    Year        1       A     2009
1    Date        1       A       12
2    Year        2       A     2021
3    Year        3       A     2011
       Column1  Column2 ColumnX             Column3
0         Year        1       A                2009
1  Year period        1       A           Below2010
2         Date        1       A                  12
3         Year        2       A                2021
4  Year period        2       A           Above2020
5         Year        3       A                2011
6  Year period        3       A  Range in 2010/2020

【问题讨论】:

  • 所以呢 ?解释很不清楚。你试过什么了 ?发布一些代码。

标签: python pandas


【解决方案1】:

boolean indexing中首先过滤行以获取Year列,在numpy.select中替换Column3并将子字符串添加到Column1,最后通过concat与原始连接并通过DataFrame.sort_index对索引进行排序:

#necessary default RangeIndex
df = df.reset_index(drop=True)

m = df['Column1'].eq('Year')

df1 = (df[m].assign(Column3 = lambda x: np.select([x['Column3']<2010, x['Column3']>2020], 
                                                  ['Below2010','Above2020'], 
                                                  default='Range in 2010/2020'),
                    Column1 =  lambda x: x['Column1'] + ' period'))

df = pd.concat([df, df1]).sort_index(kind='mergesort', ignore_index=True)
print (df)
       Column1  Column2 ColumnX             Column3
0         Year        1       A                2009
1  Year period        1       A           Below2010
2         Date        1       A                  12
3         Year        2       A                2021
4  Year period        2       A           Above2020
5         Year        3       A                2011
6  Year period        3       A  Range in 2010/2020

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多