填写缺少的列名-Python
我试图将一组数据帧连接在一起,它们都具有相同的信息。但是有些列名称丢失,有些数据帧有额外的列。但是,对于它们确实具有的列,它们都遵循相同的顺序。我想要一个函数来填充缺少的名称。以下几点几乎奏效:填写缺少的列名-Python,python,Python,我试图将一组数据帧连接在一起,它们都具有相同的信息。但是有些列名称丢失,有些数据帧有额外的列。但是,对于它们确实具有的列,它们都遵循相同的顺序。我想要一个函数来填充缺少的名称。以下几点几乎奏效: def fill_missing_colnames(colnames): valid_colnames = ['Z', 'K', 'C', 'T', 'A', 'E', 'F', 'G'] missing = list(set(valid_colnames) - set(colnam
def fill_missing_colnames(colnames):
valid_colnames = ['Z', 'K', 'C', 'T', 'A', 'E', 'F', 'G']
missing = list(set(valid_colnames) - set(colnames))
if len(missing) > 0:
for i, col in enumerate(colnames):
if col not in valid_colnames and len(missing) > 0:
colnames[i] = missing.pop(0)
return colnames
但问题是set()按字母顺序排列元素,而我希望保留列名(或者更确切地说是有效列名)的顺序
海螺看起来像这样:
concat_errors = {}
all_data = pd.DataFrame(list_of_dataframes[0])
for i, data in enumerate(list_of_dataframes[1:]):
try:
all_data = pd.concat([all_data, pd.DataFrame(data)], axis = 0, sort = False)
except Exception as e:
concat_errors.update({i+1:e})
您可以使用列表理解而不是集合操作
missing=[col for col in valid\u colnames(如果col不在colnames中)]
这将简单地过滤掉不在colnames中的值并保留顺序。您可以使用列表理解而不是set操作
missing=[col for col in valid\u colnames(如果col不在colnames中)]
这将简单地过滤掉不在colnames中的值并保留顺序。您的连接代码是什么样子的?在上面添加了concat脚本您的连接代码是什么样子的?在上面添加了concat脚本
concat_errors = {}
all_data = pd.DataFrame(list_of_dataframes[0])
for i, data in enumerate(list_of_dataframes[1:]):
try:
all_data = pd.concat([all_data, pd.DataFrame(data)], axis = 0, sort = False)
except Exception as e:
concat_errors.update({i+1:e})