如何在Pandas中创建新列,条件重复另一列的值?

M-M*_*M-M 9 python dataframe pandas

我是Python的初学者,我有一个大的DataFrame看起来像这样:

import pandas as pd
df = pd.DataFrame({'Total': [10, 10, 10, 10, 10, 10, 10, 10, 10, 10], \
                    'Type': ['Child', 'Boy', 'Girl', 'Senior', '', '', '', '', '', ''], \
                    'Count': [4, 5, 1, 0, '', '', '', '', '', '']})
df[["Total", "Type", "Count"]]
df
Run Code Online (Sandbox Code Playgroud)

输出:

   Total    Type    Count
0   10     Child    4
1   10       Boy    5
2   10      Girl    1
3   10     Senior   0
4   10      
5   10      
6   10      
7   10      
8   10      
9   10      
Run Code Online (Sandbox Code Playgroud)

我希望有类似的东西:

    Total   Type    Count   New
0   10     Child       4    Child
1   10       Boy       5    Child
2   10      Girl       1    Child
3   10    Senior       0    Child
4   10                      Boy
5   10                      Boy
6   10                      Boy
7   10                      Boy
8   10                      Boy
9   10                      Girl
Run Code Online (Sandbox Code Playgroud)

我不知道如何创建一个新的列,条件重复Typentime作为数量Count.

谢谢!

WeN*_*Ben 6

使用repeat,replace空白为0 inCount

df['New']=df.Type.repeat(df.Count.replace('',0)).values
df
Out[657]: 
  Count  Total    Type    New
0     4     10   Child  Child
1     5     10     Boy  Child
2     1     10    Girl  Child
3     0     10  Senior  Child
4           10            Boy
5           10            Boy
6           10            Boy
7           10            Boy
8           10            Boy
9           10           Girl
Run Code Online (Sandbox Code Playgroud)