Python Forum
DataFrame: To print a column value which is not null out of 5 columns
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
DataFrame: To print a column value which is not null out of 5 columns
#1
Hello All,

I have an excel sheet with 6 columns: app_name,app_owner,bus_owner,it_lead,app_maintainer,last_updater.
Here column 2 to 6 are people names in the mentioned order.

For a given app_name, there can be names in one or more columns.

Here is a sample test data:

app_name,app_owner,bus_owner,it_lead,app_maintainer,last_updater
CRM,Tom,Hanks,Tim,Bob,Venkat
SAP,NaN,Carpenter,Velu,Karen,Lisa
eCRM,NaN,NaN,Mani,Pinky,Waren
mSales,NaN,NaN,NaN,Rosy,Lily
Mzone,NaN,NaN,NaN,NaN,Matt

I need to print the people name for app_name as input.
So, if value is present in app_owner then it should be printed, else check next column which is bus_owner for value and so on.

Expected output for the test data should be:

CRM,Tom
SAP,Carpenter
eCRM,Mani
mSales,Rosy
Mzone,Matt

I am trying to use panda's where function, but no luck.

Any help is very much appreciated.
Reply
#2
The tricky part could be solved bye df.apply(lambda x: pd.Series(x.dropna().values),1)
Can do a test,and can use to_csv or to_excel get the output.
import pandas as pd
from io import StringIO

data = StringIO("""\
app_name,app_owner,bus_owner,it_lead,app_maintainer,last_updater
CRM,Tom,Hanks,Tim,Bob,Venkat
SAP,NaN,Carpenter,Velu,Karen,Lisa
eCRM,NaN,NaN,Mani,Pinky,Waren
mSales,NaN,NaN,NaN,Rosy,Lily
Mzone,NaN,NaN,NaN,NaN,Matt""")

df = pd.read_csv(data, sep=",")

df = df.apply(lambda x: pd.Series(x.dropna().values),1)
df
	0	1	2	3	4	5
0	CRM	Tom	Hanks	Tim	Bob	Venkat
1	SAP	Carpenter	Velu	Karen	Lisa	NaN
2	eCRM	Mani	Pinky	Waren	NaN	NaN
3	mSales	Rosy	Lily	NaN	NaN	NaN
4	Mzone	Matt	NaN	NaN	NaN	NaN

first_2 = df[[0, 1]]
first_2
0	CRM	Tom
1	SAP	Carpenter
2	eCRM	Mani
3	mSales	Rosy
4	Mzone	Matt

print(first_2.to_csv(header=None, index=False))
CRM,Tom
SAP,Carpenter
eCRM,Mani
mSales,Rosy
Mzone,Matt
Reply
#3
Hello Snippsat,

Thank you very much for this solution. It worked perfect.
Appreciate your help.

Regards,
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Find duplicates in a pandas dataframe list column on other rows Calab 2 2,203 Sep-18-2024, 07:38 PM
Last Post: Calab
  Find strings by index from a list of indexes in a different Pandas dataframe column Calab 3 1,641 Aug-26-2024, 04:52 PM
Last Post: Calab
  Create new column in dataframe Scott 10 3,603 Jun-30-2024, 10:18 PM
Last Post: Scott
  attempt to split values from within a dataframe column mbrown009 9 5,968 Jun-20-2024, 07:59 PM
Last Post: AdamHensley
  Putting column name to dataframe, can't work. jonah88888 2 3,284 Jun-18-2024, 09:19 PM
Last Post: AdamHensley
  How to add columns to polars dataframe sayyedkamran 1 3,165 Nov-03-2023, 03:01 PM
Last Post: gulshan212
  concat 3 columns of dataframe to one column flash77 2 2,140 Oct-03-2023, 09:29 PM
Last Post: flash77
  HTML Decoder pandas dataframe column mbrown009 3 2,710 Sep-29-2023, 05:56 PM
Last Post: deanhystad
  New Dataframe Column Based on Several Conditions nb1214 1 2,531 Nov-16-2021, 10:52 PM
Last Post: jefsummers
  Setting the x-axis to a specific column in a dataframe devansing 0 2,645 May-23-2021, 12:11 AM
Last Post: devansing

Forum Jump:

User Panel Messages

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