python - 为什么我的数据框在连接时会创建新行?
问题描述
我正在尝试合并两个数据框。一个有形状,1725 rows x 3 columns
另一个有1725 rows x 8 columns
。
我将它们合并res = pd.concat([dataSet, onehotDataFrame], axis=1)
并得到一个 shape 的数据框
1810 rows x 11 columns
。
这些列看起来不错,但为什么结果中有 85 行额外的行?
重要的是要注意原始数据有形状(1810, 7)
,我使用
extractedCols = remove_columns(originalDF, remove_from_all)
noDuplacates = extractedCols.drop_duplicates()
为了得到一个(1725, 4)
数据框,我在合并之前删除了另一列。
解决方案
问题是不同的索引值,所以你需要相同的DataFrame.reset_index
with drop=True
:
df = pd.concat([dataSet.reset_index(drop=True),
onehotDataFrame.reset_index(drop=True)], axis=1)
另一个想法是在之前设置一个索引concat
:
dataSet.index = onehotDataFrame.index
df = pd.concat([dataSet, onehotDataFrame], axis=1)
推荐阅读
- python - 从具有相似未排序值的字典列表中删除字典
- python - 在循环之前编译替换 Python 的 re.sub
- reactjs - 使用 react-i18n 翻译一个单独的 json 文件
- sql-server - Azure SQL 数据库审计/管理
- svn - 另一个硬盘驱动器中的 VisualSVN 服务器单个存储库
- reactjs - reactjs中的蚂蚁设计警报位置
- mysql - 几秒钟后是否可以清空某些mysql数据?
- json - 试图了解如何处理用户数据。或者可能是措辞更好的用户输入
- excel-formula - 文本范围的百分位数
- python - 如何使用 Python 导入使用逗号作为十进制的 Excel 工作表?