🖌️
Abhishek Notes
  • Pandas notes
  • Convert HEIC images/files on macOS with CLI
  • MkDocs github/ gh-pages deploy trick
  • 🏗️Load Balancers and Proxies
  • 🐍Python Gotchas
  • 🦖Random Stuff
  • 🐛Signing multiple git commits
Powered by GitBook
On this page

Was this helpful?

Pandas notes

Some notes/code snippet related to pandas operations.

NextConvert HEIC images/files on macOS with CLI

Last updated 1 year ago

Was this helpful?

Apply a function with multiple arguments to pandas DataFrame columns - using DataFrame.apply()

DataFrame.apply() applies a function along an axis of the DataFrame.

Following is the syntax:

DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)

Reference:

Use args=(param1, param2, ) parameter in DataFrame.apply() method to pass additional arguments to a function.

It takes function parameters in a tuple. The first argument is series by default so you don't need to pass it.

Example: Convert an ISO date/DateTime stamp (2021-04-12T07:21:00.345344) to standard (2021-04-10 07:21:00.345344) format.

apply_test.py
import pandas as pd

def date_to(row, col_name):
''' Function to convert an ISO date format to standard date format'''
        row[col_name] = pd.to_datetime(row[col_name]).strftime('%Y-%m-%d %H:%M%:%S.%f')
        #row[col_name] = pd.to_datetime(row[col_name]).strftime('%Y-%m-%d %H:%M%:%S.%f')[:-3]
        return row[col_name]


sample_dates = {
            "Date": [
                "2021-04-12T07:21:00.345344",
                "2015-10-19T07:18:00.234234",
                "2018-11-19T07:15:00.423423",
            ],
            "AnotherDate": [
                "2018-12-22T07:21:00.963344",
                "2019-08-19T07:18:00.887234",
                "2020-03-20T07:15:00.765423",
            ]
        }
        
df = pd.DataFrame(s2)
# df['Date'] = df.apply(date_to, axis=1) :apply function without paramter.
df["Date"] = df.apply(date_to, args=("Date",), axis=1) # apply function with paramter.
df["AnontherDate"] = df.apply(date_to, args=("AnontherDate",), axis=1)

Output:

                         Date                AnotherDate
0  2021-04-12 07:21:00.345344  2018-12-22 07:21:00.963344
1  2015-10-19 07:18:00.234234  2019-08-19 07:18:00.887234
2  2018-11-19 07:15:00.423423  2020-03-20 07:15:00.765423
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.apply.html