如何使用python连续减少值出现在列中的次数?

时间:2018-01-24 03:04:18

标签: python-3.x pandas append

我有一个具有x值的列(TESTFILE)(在此示例中x = 4,它是否接近50:

  1. 你好
  2. 工作
  3. 今天
  4. 我希望输出为:

    1. 你好
    2. 你好
    3. 你好
    4. 工作
    5. 代码:

      out1 = []
      for i in range(len(testfile)):    
          n = len(testfile) - 1
          if i ==0:
              filepath = (testfile.iloc[i,0])*n
              out1.append(filepath)       
          elif i ==1:
              filepath = (testfile.iloc[i,0])* (n-1)   
              out1.append(filepath)
          else:
              filepath = (testfile.iloc[i,0])* (n-2)
              out1.append(filepath)
          print (filepath)   
      

      目前的输出是:

      1. hellohellohello
      2. goodgood
      3. 工作
      4. 如何获得所需的输出?如果x = 50,我应该如何更改代码?不能写更多if语句。请帮忙

1 个答案:

答案 0 :(得分:4)

使用repeat

s.repeat(s.index.values[::-1]).reset_index(drop=True)

Out[1183]: 
0    hello
1    hello
2    hello
3     good
4     good
5      job
Name: Val, dtype: object

数据输入

s
Out[1182]: 
0    hello
1     good
2      job
3    today
Name: Val, dtype: object