Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Assigning column names while creating dataframe results in nan values

I have a list of dict which is being converted to a dataframe. When I attempt to pass the columns argument the output values are all nan.

# This code does not result in desired output

l = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]
pd.DataFrame(l, columns=['c', 'd'])

    c   d
0   NaN NaN
1   NaN NaN
# This code does result in desired output

l = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]
df = pd.DataFrame(l)
df.columns = ['c', 'd']
df

    c   d
0   1   2
1   3   4

Why is this happening?

like image 225
kav Avatar asked May 12 '20 05:05

kav


People also ask

How do you fill columns with a NaN values in pandas?

pandas. DataFrame. fillna() method is used to fill column (one or multiple columns) contains NA/NaN/None with 0, empty, blank or any specified values e.t.c. NaN is considered a missing value.

How do you handle NaN in a data frame?

In order to check missing values in Pandas DataFrame, we use a function isnull() and notnull(). Both function help in checking whether a value is NaN or not. These function can also be used in Pandas Series in order to find null values in a series.

How do I change NaN values with column mean?

For mean, use the mean() function. Calculate the mean for the column with NaN and use the fillna() to fill the NaN values with the mean.

How do I find all NaN values in a Dataframe?

Find all Columns with NaN Values in Pandas DataFrame. Here are 4 ways to find all columns that contain NaN values in Pandas DataFrame: (1) Use isna () to find all columns with NaN values: (2) Use isnull () to find all columns with NaN values: (3) Use isna () to select all columns with NaN values:

How to create a Dataframe with specific column names and no rows?

The following code shows how to create a pandas DataFrame with specific column names and no rows: import pandas as pd #create DataFrame df = pd.DataFrame(columns= ['A', 'B', 'C', 'D', 'E']) #view DataFrame df A B C D E

How do I select all columns with NaN values in Python?

(3) Use isna () to select all columns with NaN values: (4) Use isnull () to select all columns with NaN values: In the next section, you’ll see how to apply the above approaches in practice. For example, let’s create a DataFrame with 4 columns: Notice that some of the columns in the DataFrame contain NaN values:

How to create NaN values in pandas Dataframe using NumPy?

You can easily create NaN values in Pandas DataFrame using Numpy. More specifically, you can place np.nan each time you want to add a NaN value in the DataFrame.


Video Answer


1 Answers

Because if pass list of dictionaries from keys are created new columns names in DataFrame constructor:

l = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]
print (pd.DataFrame(l))
   a  b
0  1  2
1  3  4

If pass columns parameter with some values not exist in keys of dictionaries then are filtered columns from dictonaries and for not exist values are created columns with missing values with order like values in list of columns names:

#changed order working, because a,b keys at least in one dictionary
print (pd.DataFrame(l, columns=['b', 'a']))
   b  a
0  2  1
1  4  3

#filtered a, d filled missing values - key is not at least in one dictionary
print (pd.DataFrame(l, columns=['a', 'd']))
   a   d
0  1 NaN
1  3 NaN

#filtered b, c filled missing values - key is not at least in one dictionary
print (pd.DataFrame(l, columns=['c', 'b']))
    c  b
0 NaN  2
1 NaN  4

#filtered a,b, c, d filled missing values - keys are not at least in one dictionary
print (pd.DataFrame(l, columns=['c', 'd','a','b']))
    c   d  a  b
0 NaN NaN  1  2
1 NaN NaN  3  4

So if want another columns names you need rename them or set new one like in your second code.

like image 74
jezrael Avatar answered Oct 09 '22 21:10

jezrael



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!