Python新手,下面是我使用的代码:
lst2 = list()
for i in lst1:
try:
df1 = pd.DataFrame(i.QID1)
except AttributeError:
"null"
df2 = lst2.append(df1)
lst2正在生成我想要的输出,但是I . qid1不存在的实例被来自前一个实例的数据填充,而不是"null"。我敢肯定这是因为'except AttributeError'片,只是不知道如何修复它。就像我说的,我是个新手。
非常感谢你的帮助!
您的缩进是关闭的,并且您没有分配"null">
lst2 = list()
for i in lst1:
try:
df1 = pd.DataFrame(i.QID1)
except AttributeError:
df1 = "null"
lst2.append(df1)
- 如果你想让
for
循环在循环内发生,所有的东西都必须缩进。 try
和except
需要在同一水平缩进。- 将
df1
附加到lst2
不会返回任何东西,因此没有必要将其分配给df2
。
另一种构建此列表的方法是编写一个函数,返回给定i
的数据框(或"null"),并将其用于推导式:
def dataframe_or_null(i):
try:
return pd.DataFrame(i.QID1)
except AttributeError:
return "null"
lst2 = [dataframe_or_null(i) for i in lst1]