我将Excel文件与Pandas合并,结果是一个稀疏的数据框,其中包含名称相似或相同的列(例如,某人在标题中输入了错字或称两个相同的列)。我想在跳过NaN和空白单元格的同时合并这些列。
玩具示例:
df = pd.DataFrame(np.array([['Bob', '', np.nan, '2'], [np.nan, 4, 'a lot', '5'], [3, 4, 4, 'a little']]), columns=['column', 'column', 'olumn', 'Something'])
想要:
我尝试重命名重复的列,以便它们具有相同的名称,并使用带“ not_empty”功能的groupby为nans和空字符串重新使用False,但是合并的列为空,并且调试时很费力。
def not_empty(string):
pattern = re.compile("[A-Za-z0-9]+")
if "nan" in str(string).lower():
return False
if re.search(pattern, string) is not None:
return True
else:
return False
merged_frame = merged_frame.astype(str).groupby(merged_frame.columns, axis=1).agg(lambda x: ';'.join(y for y in x.values if not_empty(y)))
任何帮助将不胜感激!