这看起来应该简单得多,但我在这里。
我试图从另一个数据帧向一个数据帧(确切地说是 2 个数据帧)添加一行,但出现以下错误:
TypeError: cannot concatenate object of type "<class 'numpy.float64'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid
我的代码
for i in range(0,len(k_means_labels_unique)):
X = pd.DataFrame(columns=['first occurrence of \'AB\'','similarity to \'AB\''])
y = pd.DataFrame(columns=['Class'])
for row in result.iterrows():
data=row[1]
if data['cluster ID'] == i:
X = pd.concat([X,data['first occurrence of \'AB\''],data['similarity to \'AB\'']])
y = pd.concat([y,data['Class']])
我必须转型data['first occurrence of \'AB\''],data['similarity to \'AB\'']
到另一个数据框?这看起来效率极低
编辑:我尝试过 y = pd.concat([y,pd.Series(data['Class'])])
但这将数据附加为新列,例如 y
:
最佳答案
您需要首先转换为数据帧:
X = pd.concat([X,pd.DataFrame([[data['first occurrence of \'AB\''],data['similarity to \'AB\'']]],columns=['first occurrence of \'AB\'','similarity to \'AB\''])], ignore_index=True)
y = pd.concat([y,pd.DataFrame([data['Class']], columns=['Class'])], ignore_index=True)
编辑:添加ignore_index=True
关于python - 连接 pandas Dataframe 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50643118/