I have a dataframe which has 4 columns- Name, Size, Text Extracted, Score. The score column contains a list with nan in it something like this
[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan]
Here's how my dataframe looks like
Image Name Image Dimensions Text Extracted score
SGAFIS2457_1_1.jpg (1260, 1585, 3) "[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan]"
SGAFIS2457_1_2.jpg (1235, 1595, 3) "[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan]"
SGAFIS2457_2_1.jpg (1402, 1668, 3) FIS GLOBAL SUSTAINABILITY REPORT TABLE OF CONTENTS INTRODUCTION SUSTAINABLE PLANET I LETTER FROM OUR CHAIRMAN AND CEO REDUCING ENVIRONMENTAL IMPACT II ABOUT FIS III REPORT HIGHLIGHTS SUSTAINABLE GOVERNANCE IV APPROACH TO SUSTAINABLE GROWTH V RESPONSE TO COVID GOVERNANCE OVERSIGHT STRUCTURE AND RESOURCES SUSTAINABLE SOCIETIES RISK MANAGEMENT OPERATIONAL RESILIENCY AND COMPLIANCE EMPOWERING INDIVIDUALS AND MANAGING A SUSTAINABLY BUSINESSES IN THE DIGITAL ECONOMY FOCUSED SUPPLY CHAIN PROTECTING OUR CLIENTS AND THE FINANCIAL SYSTEM APPENDIX ADVANCING THE WORKFORCE OF THE FUTURE CONTENT INDEXES FOSTERING INCLUSION DIVERSITY HELPING COMMUNITIES THRIVE INTRODUCTION 0.384155154
/content/keras-retinanet/PDFs/KPI1/Cropped_images/KPI1_SGAFIS2457_7_1.jpg (1105, 865, 3) MATRIX OF MATERIAL TOPICS Local Communities Training and Education Diversity Equal Opportunity Indirect Economic Impacts Ethics and Integrity Employment Data Privacy and Security Governance Customer Privacy Access to Economic Finance Performance Procurement Indirect Energy Economic Impacts Practices Anti Corruption Business Continuity Anti Competitive Behavior Public Policy INCREASING IMPORTANCE INDUSTRY PERSPECTIVES SUSTAINABLE SUSTAINABLE SUSTAINABLE SOCIETIES PLANET GOVERNANCE EXTERNAL STAKEHOLDERS PERSPECTIVES 0.352203667
SGAALDAR DH_44_1.jpg (758, 1147, 3) GRI "[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan]"
SGAALDAR DH_96_1.jpg (1266, 2316, 3) "[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan]"
For your reference I'm also attaching a screenshot of the it here
I've tried multiple ways of removing the whole row where the nan in list is present but none of them worked so far. Here's a snippet of code which I tried would solve it but it did not work.
dfKPI = dfKPI[~dfKPI['score'].isin(garb)]
here garb is nothing but the list shared above.
I'm stuck on this problem for a good two days and after researching and trying out multiple things I'm writing it over here. Please help me out, let me know the right way of deleting the whole row where a list would be present. Thanks!
CodePudding user response:
From the look of it, it seems that your score column has usually a numerical result, but sometimes has a string
containing "[nan nan nan ...]"
rather than a list
of nan
.
One simple way to clean this up (here assuming an original DataFrame called df
) is:
df_new = df.assign(score=pd.to_numeric(df['score'], errors='coerce'))
Optionally, you can drop all rows with nan
(either resulting from the 'coerce' above, or originally nan
):
df_new = (
df
.assign(score=pd.to_numeric(df['score'], errors='coerce'))
.dropna(subset='score')
)