Setting columns for an empty pandas dataframe

后端 未结 2 1332
心在旅途
心在旅途 2021-01-03 06:16

This is something that I\'m confused about...

import pandas as pd

# this works fine
df1 = pd.DataFrame(columns=[\'A\',\'B\'])

# but let\'s say I have this
d         


        
2条回答
  •  孤独总比滥情好
    2021-01-03 06:25

    This looks like a bug in pandas. All of these work:

    pd.DataFrame(columns=['A', 'B'])
    pd.DataFrame({}, columns=['A', 'B'])
    pd.DataFrame(None, columns=['A', 'B'])
    

    but not this:

    pd.DataFrame([], columns=['A', 'B'])
    

    Until it's fixed, I suggest something like this:

    if len(data) == 0: data = None
    df2 = pd.DataFrame(data, columns=['A','B'])
    

    or:

    df2 = pd.DataFrame(data if len(data) > 0 else None, columns=['A', 'B'])
    

提交回复
热议问题