We would like to combine the average with the evaluation of each class when we receive the following monthly test results (ABC evaluation).
I want to combine only each element using loop, but the calculation results overlap.
df=pd.read_excel("~/Test.xlsx")
df1 = df ['Average']
df2 = df.iloc[1:, 2:]#1 to 5 pairs
df3 = [ ]
for i in df1:
for index, jindf2.iterrows():
df3.append(list(i+j))
Thank you for your cooperation.
python python3
Apply allows you to concatenate columns by columns.
df4=df.iloc[:, 2:].apply(df['average'].str.cat)
df4 = pd.concat ([df['time'], df4], Axis=1)
This will give you the following data frames (4 pairs or later, no more 2020-04-01 or later):
Period 1 pair 2 pairs 3 pairs
0 2020-01-01 ABAC AA
1 2020-02-01 AA AC AC
2 2020-03-01 CC CBCA
Here's how to use pandas.DataFrame.agg.
import pandas as pd
df = pd.DataFrame({
'Time': ['2020/1/1', '2020/2/1', '2020/3/1', '2020/4/1', '2020/5/1', '2020/6/1',
'2020/7/1', '2020/8/1', '2020/9/1', '2020/10/1', '2020/11/1', '2020/12/1'],
'Average': ['A', 'A', 'C', 'C', 'B', 'B', 'B', 'B', 'B', 'A', 'C', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
'Group 1': ['B', 'A', 'C', 'A', 'B', 'A', 'C', 'C', 'C', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'A', 'A', 'A',
'2 pairs': ['C', 'C', 'B', 'A', 'C', 'A', 'B', 'C', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'A', 'A', 'A', 'A', 'A'],
'Group 3': ['A', 'C', 'A', 'C', 'C', 'B', 'A', 'C', 'A', 'B', 'B', 'A', 'A', 'B', 'C', 'A', 'A'],
'Group 4': ['A', 'C', 'A', 'C', 'A', 'B', 'A', 'C', 'A', 'C', 'B', 'A', 'B', 'B', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C',
'Group 5': ['B', 'B', 'B', 'A', 'C', 'A', 'B', 'C', 'A', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C',
})
dfx = df.agg(
lambdax:x if x.name in ('Time', 'Average') else df ['Average'] + x)
pd.set_option('display.unicode.east_asian_width', True)
print(dfx)
=>
Average period: 1 pair, 2 pairs, 3 pairs, 4 pairs, 5 pairs
0 2020/1/1 AAB AC AAB
1 2020/2/1 AAA AC AC AC AB
2 3/1/2020 CC CB CA CB
3 2020/4/1 CC CA CC CA CC CA
4 May 1, 2020 BB BC BC BC BC BC
5 June 1, 2020 BBBA BBBABABABABABABABABABABABABABABABABABA
6 July 1, 2020 BB BB BB BB BB
7 August 1, 2020 BC BC BC BABA
8 2020/9/1 AA AA AA AC
9 2020/10/1 CC CB CB CA CA
10 November 1, 2020 AB AB AB AB AB ABAC
11 December 1, 2020 BBBABABC
© 2025 OneMinuteCode. All rights reserved.