Python Forum
Want to shorten the python code
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Want to shorten the python code
#1
My code works fine. However, I would like to shorten my code if there is a shorter way to write this. Does anyone have a solution? I have a lot of repeating things in my code. I just mentioned the snippet where my code is repeating. Actual Python Code Attached.

The below code is repeating 10 times. only thing is changing
if (df2.iloc[row, column] == '1') or (df2.iloc[row, column] == 1):
              if row == 0:
                  Activities.append(df2.iloc[0, 0])
                  TimeID.append(column+1)
                  HoleID.append(df3.loc[row_index_1][0])
......(41 times)

if (df2.iloc[row, column] == '2') or (df2.iloc[row, column] == 2):
              if row == 0:
                  Activities.append(df2.iloc[0, 0])
                  TimeID.append(column+1)
                  HoleID.append(df3.loc[row_index_2][0])
......(41 times)

.....................

if (df2.iloc[row, column] == '10') or (df2.iloc[row, column] == 10):
              if row == 0:
                  Activities.append(df2.iloc[0, 0])
                  TimeID.append(column+1)
                  HoleID.append(df3.loc[row_index_10][0])
......(41 times)
if (df2.iloc[row, column] == '1') or (df2.iloc[row, column] == 1):
                        if row == 0:
                            Activities.append(df2.iloc[0, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 1:
                            Activities.append(df2.iloc[1, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 2:
                            Activities.append(df2.iloc[2, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 3:
                            Activities.append(df2.iloc[3, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 4:
                            Activities.append(df2.iloc[4, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 5:
                            Activities.append(df2.iloc[5, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 6:
                            Activities.append(df2.iloc[6, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 7:
                            Activities.append(df2.iloc[7, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 8:
                            Activities.append(df2.iloc[8, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 9:
                            Activities.append(df2.iloc[9, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 10:
                            Activities.append(df2.iloc[10, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 11:
                            Activities.append(df2.iloc[11, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 12:
                            Activities.append(df2.iloc[12, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 13:
                            Activities.append(df2.iloc[13, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 14:
                            Activities.append(df2.iloc[14, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 15:
                            Activities.append(df2.iloc[15, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 16:
                            Activities.append(df2.iloc[16, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 17:
                            Activities.append(df2.iloc[17, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 18:
                            Activities.append(df2.iloc[18, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 19:
                            Activities.append(df2.iloc[19, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 20:
                            Activities.append(df2.iloc[20, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 21:
                            Activities.append(df2.iloc[21, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 22:
                            Activities.append(df2.iloc[22, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 23:
                            Activities.append(df2.iloc[23, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 24:
                            Activities.append(df2.iloc[24, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 25:
                            Activities.append(df2.iloc[25, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 26:
                            Activities.append(df2.iloc[26, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 27:
                            Activities.append(df2.iloc[27, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 28:
                            Activities.append(df2.iloc[28, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 29:
                            Activities.append(df2.iloc[29, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 30:
                            Activities.append(df2.iloc[30, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 31:
                            Activities.append(df2.iloc[31, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 32:
                            Activities.append(df2.iloc[32, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 33:
                            Activities.append(df2.iloc[33, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 34:
                            Activities.append(df2.iloc[34, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 35:
                            Activities.append(df2.iloc[35, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 36:
                            Activities.append(df2.iloc[36, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 37:
                            Activities.append(df2.iloc[37, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 38:
                            Activities.append(df2.iloc[38, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 39:
                            Activities.append(df2.iloc[39, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 40:
                            Activities.append(df2.iloc[40, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 41:
                            Activities.append(df2.iloc[41, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
I recommend everyone to check attached python script as it will give you an idea how I written my python code and logic.
Attach python script.

Attached Files

.py   Check.py (Size: 116.62 KB / Downloads: 146)
Reply
#2
if (df2.iloc[row, column] == '1') or (df2.iloc[row, column] == 1):
                        if row == 0:
                            Activities.append(df2.iloc[0, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 1:
                            Activities.append(df2.iloc[1, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 2:
                            Activities.append(df2.iloc[2, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 3:
                            Activities.append(df2.iloc[3, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 4:
                            Activities.append(df2.iloc[4, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 5:
                            Activities.append(df2.iloc[5, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 6:
                            Activities.append(df2.iloc[6, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 7:
                            Activities.append(df2.iloc[7, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 8:
                            Activities.append(df2.iloc[8, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 9:
                            Activities.append(df2.iloc[9, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 10:
                            Activities.append(df2.iloc[10, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 11:
                            Activities.append(df2.iloc[11, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 12:
                            Activities.append(df2.iloc[12, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 13:
                            Activities.append(df2.iloc[13, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 14:
                            Activities.append(df2.iloc[14, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 15:
                            Activities.append(df2.iloc[15, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 16:
                            Activities.append(df2.iloc[16, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 17:
                            Activities.append(df2.iloc[17, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 18:
                            Activities.append(df2.iloc[18, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 19:
                            Activities.append(df2.iloc[19, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 20:
                            Activities.append(df2.iloc[20, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 21:
                            Activities.append(df2.iloc[21, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 22:
                            Activities.append(df2.iloc[22, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 23:
                            Activities.append(df2.iloc[23, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 24:
                            Activities.append(df2.iloc[24, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 25:
                            Activities.append(df2.iloc[25, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 26:
                            Activities.append(df2.iloc[26, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 27:
                            Activities.append(df2.iloc[27, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 28:
                            Activities.append(df2.iloc[28, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 29:
                            Activities.append(df2.iloc[29, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 30:
                            Activities.append(df2.iloc[30, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 31:
                            Activities.append(df2.iloc[31, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 32:
                            Activities.append(df2.iloc[32, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 33:
                            Activities.append(df2.iloc[33, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 34:
                            Activities.append(df2.iloc[34, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 35:
                            Activities.append(df2.iloc[35, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 36:
                            Activities.append(df2.iloc[36, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 37:
                            Activities.append(df2.iloc[37, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 38:
                            Activities.append(df2.iloc[38, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 39:
                            Activities.append(df2.iloc[39, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 40:
                            Activities.append(df2.iloc[40, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
                        elif row == 41:
                            Activities.append(df2.iloc[41, 0])
                            TimeID.append(column+1)
                            HoleID.append(df3.loc[row_index_1][0])
for this code, I think equal as:
if (df2.iloc[row, column] == '1') or (df2.iloc[row, column] == 1):
                        if row >= 0 and row <= 41:
                            Activities.append(df2.iloc[row, 0])
                            TimeID.append(column+1)
                            #i not sure the line below will run smoothly, but you can try
                            HoleID.append(df3.loc[df3.loc[df3.loc[:, 'Index'] == column, 'Index'].first_valid_index()][0])
Reply
#3
How about this:
df_rows = [str(i) for i in range(1, 11)]
indexes = {i:df3.loc[df3.loc[:, 'Index'] == int(i), 'Index'].first_valid_index() for i in df_rows}

for column in range(0, 52):
    for row in range(0, 35):
        df_row = str(df2.iloc[row, column]).upper()
        if df_row == "X":
            Activities.append(df2.iloc[row, 0])
            TimeID.append(column+1)
            HoleID.append('NoHole')
        
        elif df_row in df_rows:
            # Does (df2.iloc[row, column] == 'N') or (df2.iloc[row, column] == N)
            # for N in the range 1 to 10
            index = indexes[df_row]
            Activities.append(df2.iloc[row, 0])
            TimeID.append(column+1)
            HoleID.append(df3.loc[index][0])
Reply
#4
(Apr-24-2022, 06:36 AM)shantanu97 Wrote: I recommend everyone to check attached python script as it will give you an idea how I written my python code and logic.
Ahh what the .... 2238 lines of code 😵
This is not all how you work with Pandas DataFrame.

Clean up data before and when in Pandas work on whole DataFrame with vectorized and build in solutions.
So loop or build in iterrows() should only be used when needed,in most cases not at all.
People think in Python way where loop is common to us,Pandas need a different approach.

Some more info in Optimizing Pandas
Quote:Perhaps the most important rule is to avoid using loops in Pandas code.
Looping over a Series or a DataFrame processes data one item or row/column at a time.
Instead, operations should be vectorized.
This means an operation should be performed on the entire Series or DataFrame row/column.
Developers should think of all operations as matrix computations that can be parallelized
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  python multiple try except block in my code -- can we shorten code mg24 10 6,177 Nov-10-2022, 12:48 PM
Last Post: DeaD_EyE
  How to shorten the size of program garikhgh0 11 6,117 Feb-22-2018, 06:35 PM
Last Post: snippsat
  How do I shorten my input options? - text adventure ShiningKnight 3 4,672 Jan-01-2017, 03:21 AM
Last Post: ichabod801
  Shorten this List Comprehension ATXpython 7 7,016 Oct-10-2016, 07:50 AM
Last Post: wavic

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020