JavaScript
x
6
1
import pandas as pd
2
data = [10]
3
booklines = pd.DataFrame(data,columns=['Nums'])
4
matches = {'Fullname':['Sasel - Dassendorf'],'HomeTeam':['Sasel'],'AwayTeam':['Dassendorf']}
5
matches_df = pd.DataFrame(matches)
6
Is there a way I can replicate the number of rows in matches_df based on the row value 10 which is present in booklines.
The end result is the matches df replicated ten times like this. I am looking for a programatic way of doing this instead of manually adding in the ten like so.
matches_df.append([matches_df]*10,ignore_index=True)
Advertisement
Answer
Use:
JavaScript
1
7
1
val = booklines['Nums'].iat[0]
2
3
matches = {'Fullname':['Sasel - Dassendorf']*val,
4
'HomeTeam':['Sasel']*val,
5
'AwayTeam':['Dassendorf']*val}
6
matches_df = pd.DataFrame(matches)
7
Or:
JavaScript
1
15
15
1
matches = {'Fullname':['Sasel - Dassendorf'],'HomeTeam':['Sasel'],'AwayTeam':['Dassendorf']}
2
matches_df = pd.DataFrame(matches).reindex(range(val), method='ffill')
3
print (matches_df)
4
Fullname HomeTeam AwayTeam
5
0 Sasel - Dassendorf Sasel Dassendorf
6
1 Sasel - Dassendorf Sasel Dassendorf
7
2 Sasel - Dassendorf Sasel Dassendorf
8
3 Sasel - Dassendorf Sasel Dassendorf
9
4 Sasel - Dassendorf Sasel Dassendorf
10
5 Sasel - Dassendorf Sasel Dassendorf
11
6 Sasel - Dassendorf Sasel Dassendorf
12
7 Sasel - Dassendorf Sasel Dassendorf
13
8 Sasel - Dassendorf Sasel Dassendorf
14
9 Sasel - Dassendorf Sasel Dassendorf
15
If same number of rows in both DataFrames and need use Nums
column for replicate use Index.repeat
with DataFrame.loc
:
JavaScript
1
16
16
1
data = [10, 7]
2
booklines = pd.DataFrame(data,columns=['Nums'])
3
print (booklines)
4
Nums
5
0 10
6
1 7
7
8
matches = {'Fullname':['Sasel - Dassendorf', 'Sasel - Dassendorf'],
9
'HomeTeam':['Sasel', 'Dassendorf'],
10
'AwayTeam':['Dassendorf', 'Sasel']}
11
matches_df = pd.DataFrame(matches)
12
print (matches_df)
13
Fullname HomeTeam AwayTeam
14
0 Sasel - Dassendorf Sasel Dassendorf
15
1 Sasel - Dassendorf Dassendorf Sasel
16
JavaScript
1
21
21
1
df = matches_df.loc[matches_df.index.repeat(booklines['Nums'])]
2
print (df)
3
Fullname HomeTeam AwayTeam
4
0 Sasel - Dassendorf Sasel Dassendorf
5
0 Sasel - Dassendorf Sasel Dassendorf
6
0 Sasel - Dassendorf Sasel Dassendorf
7
0 Sasel - Dassendorf Sasel Dassendorf
8
0 Sasel - Dassendorf Sasel Dassendorf
9
0 Sasel - Dassendorf Sasel Dassendorf
10
0 Sasel - Dassendorf Sasel Dassendorf
11
0 Sasel - Dassendorf Sasel Dassendorf
12
0 Sasel - Dassendorf Sasel Dassendorf
13
0 Sasel - Dassendorf Sasel Dassendorf
14
1 Sasel - Dassendorf Dassendorf Sasel
15
1 Sasel - Dassendorf Dassendorf Sasel
16
1 Sasel - Dassendorf Dassendorf Sasel
17
1 Sasel - Dassendorf Dassendorf Sasel
18
1 Sasel - Dassendorf Dassendorf Sasel
19
1 Sasel - Dassendorf Dassendorf Sasel
20
1 Sasel - Dassendorf Dassendorf Sasel
21
Last for default index use:
JavaScript
1
2
1
df = df.reset_index(drop=True)
2