Python 如何创建具有特定列的空数据框?

Python 如何创建具有特定列的空数据框?,python,pandas,Python,Pandas,我有一个数据帧,它总是用相同的列初始化,但有时没有任何数据: import pandas as pd data = [] df = pd.DataFrame(data, columns=['a', 'b', 'c']) 但这失败了,错误如下: Traceback (most recent call last): … ValueError: Shape of passed values is (0, 0), indices imply (3, 0) 如何创建包含列的空数据框?,传递数据=

我有一个数据帧,它总是用相同的列初始化,但有时没有任何数据:

import pandas as pd

data = []
df = pd.DataFrame(data, columns=['a', 'b', 'c'])
但这失败了,错误如下:

Traceback (most recent call last):
  …
ValueError: Shape of passed values is (0, 0), indices imply (3, 0)
如何创建包含列的空数据框?

,传递
数据=[]
工作:

In [85]: df = pd.DataFrame([], columns=['a', 'b', 'c'])

In [86]: df
Out[86]: 
Empty DataFrame
Columns: [a, b, c]
Index: []
对于旧版本的Pandas,不要传递任何
数据

In [69]: df = pd.DataFrame(columns=['a', 'b', 'c'])

In [70]: df
Out[70]: 
Empty DataFrame
Columns: [a, b, c]
Index: []
或通过
data=None

In [71]: df = pd.DataFrame(None, columns=['a', 'b', 'c'])

In [72]: df
Out[72]: 
Empty DataFrame
Columns: [a, b, c]
Index: []
,传递
数据=[]
工作:

In [85]: df = pd.DataFrame([], columns=['a', 'b', 'c'])

In [86]: df
Out[86]: 
Empty DataFrame
Columns: [a, b, c]
Index: []
对于旧版本的Pandas,不要传递任何
数据

In [69]: df = pd.DataFrame(columns=['a', 'b', 'c'])

In [70]: df
Out[70]: 
Empty DataFrame
Columns: [a, b, c]
Index: []
或通过
data=None

In [71]: df = pd.DataFrame(None, columns=['a', 'b', 'c'])

In [72]: df
Out[72]: 
Empty DataFrame
Columns: [a, b, c]
Index: []

如果数据确实存在,那么,有没有比以下更干净的方法来设置它:
df=pd.DataFrame(数据=(如果len(数据)没有),columns=['a','b','c'])
呢?只有通常的技巧。要么使用
if..else
语句,一个条件表达式(如您所示),要么
try..except
。如果数据确实存在,那么,有没有比以下方法更干净的方法:
df=pd.DataFrame(data=(data if len(data)else None),columns=['a',b',c'])
来设置它?只有通常的技巧。可以使用
if..else
语句、条件表达式(如图所示),也可以使用
try..except