Skip to content
Advertisement

Pandas Column join list values

Using Python, Pandas, I have a couple columns that have lists in them, I want to convert the list to a string.

Example:I have the following values in a record, in the field ev_connector_types

[u’ACME’, u’QUICK_CONNECT’] I’d like the value for that record to show: ACME, QUICK_CONNECT, without the list brackets, the ‘u’, and the quotes.

I’ve tried.

df.loc[df["ev_connector_types"].isnull(), "ev_connector_types"] = ", ".join(df["ev_connector_types"])
df["ev_connector_types"] = df["ev_connector_types"].agg(' '.join)
df["ev_connector_types"] = df["ev_connector_types"].apply(''.join)
df["ev_connector_types"] = df["ev_connector_types"].str.join(" ")

But I’m not getting anywhere.

Basically do this:

myList = [u'ACME', u'QUICK_CONNECT'] 
x = " ".join(myList) 

Within Pandas.

After much trial and error, I found my field value was just a bunch of string characters like “[u’ACME’, u’QUICK_CONNECT’]” and the join was doing this: [ u’ A C M E ‘ , u ‘ Q U I C K _ C O N N E C T ‘ ] If I split it on the comma, I got a list and the answer below worked. However I ended up doing a lsplit and rsplit and a replace to get what I wanted.

This line was the problem, it took the field type from a list to a string: df[“ev_connector_types”] = df[“ev_connector_types”].astype(‘str’)

Advertisement

Answer

It’s as simple as you have stated. Just do within apply()

import pandas as pd
df = pd.DataFrame([{"ev_connector_types":[u'ACME', u'QUICK_CONNECT']}])

df.assign(ev_connector_types=df["ev_connector_types"].apply(lambda l: " ".join(l)))
User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement