我阅读了有关此问题的其他帖子,但仍然没有解决我的问题:
见下图。我附加了 4 个相同的行,并对 concat 执行了相同的操作。但结果看起来并不相似。
当我尝试提取一列数据时,结果在视觉上也并不相似。它们是相同的,只是由于某种原因看起来不同,还是我使用错误?所需的结果是来自追加的结果,而不是来自连接的结果。
问题已得到解答,无需任何代码。但这里是我为未来的观众提供的可复制代码:
给定任何 csv 文件:
我
port pandas as pd
dfdata = pd.read_csv("data.csv")
dfdatanew = pd.DataFrame()
frames = [dfdata.iloc[2],dfdata.iloc[2],dfdata.iloc[2],dfdata.iloc[2]]
dfdatanew = dfdatanew.append(dfdata.iloc[2])
dfdatanew = dfdatanew.append(dfdata.iloc[2])
dfdatanew = dfdatanew.append(dfdata.iloc[2])
dfdatanew = dfdatanew.append(dfdata.iloc[2])
result = pd.concat(frames,axis=0,join='outer')
# compare
print(result)
print(dfdatanew)
您必须在问题中提供清晰的可重现示例,并以代码/数据作为文本。
也就是说,这个错误是相当明显的。您用 iloc
切片
Series来喂养您的
concat
。因此,您正在串联一个长系列。
使用 .iloc[[2]]
切片
frames:
frames = [dfdata.iloc[[2]], dfdata.iloc[[2]], dfdata.iloc[[2]], dfdata.iloc[[2]]]
result = pd.concat(frames)
您也可以
concat
axis=1
上的系列并转置,但这会弄乱 dtypes。
注意。我假设这是一个虚拟的例子。如果您确实想重复给定行 4 次,请使用:
result = dfdata.reindex([2]*4)
.