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: 279)
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
  If I need to do regex replacement 27000 times, how to shorten it? tatahuft 4 1,487 Dec-26-2024, 01:51 AM
Last Post: deanhystad
  i want to shorten a working section pizzakafz 15 4,389 Aug-23-2024, 11:56 AM
Last Post: deanhystad
  python multiple try except block in my code -- can we shorten code mg24 10 18,490 Nov-10-2022, 12:48 PM
Last Post: DeaD_EyE
  How to shorten the size of program garikhgh0 11 9,427 Feb-22-2018, 06:35 PM
Last Post: snippsat
  How do I shorten my input options? - text adventure ShiningKnight 3 6,127 Jan-01-2017, 03:21 AM
Last Post: ichabod801
  Shorten this List Comprehension ATXpython 7 10,073 Oct-10-2016, 07:50 AM
Last Post: wavic

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020
This forum uses Lukasz Tkacz MyBB addons.
Forum use Krzysztof "Supryk" Supryczynski addons.