【发布时间】:2021-06-11 17:53:37
【问题描述】:
我有一个相对简单的任务:我有 N 个 pandas 数据帧,每个数据帧有 3 行数据。大多数列名与所有 N 个数据框匹配(某些数据框可能缺少 1 或 2 列)。我想创建 3 个包含 N 行的新数据帧,这样它是通过连接这些行形成的,这样第 i 个新数据帧将包含所有 N 个数据帧的行索引 i 中的所有行。以下是我的尝试。
listOfRows1 = listOfRows2 = listOfRows3 = []
for i in range(N):
dfN = pd.read_csv("filename"+str(i)+".csv")
dfN["Index"] = range(1,4)
listOfRows1.append(dfN[dfN["Index"]==1])
listOfRows2.append(dfN[dfN["Index"]==2])
listOfRows3.append(dfN[dfN["Index"]==3])
newdf1 = pd.concat(listOfRows1)
newdf2 = pd.concat(listOfRows2)
newdf3 = pd.concat(listOfRows3)
结果是一个格式奇怪的 df,它有一些正确的行,但与我想要的输出不匹配,即使当我打印 listOfRows 时,它们看起来像是从 N 个数据帧中提取了正确的行。似乎对于每个新的 df,结果只是相互连接的整个 N 个旧数据帧,而不仅仅是所需的相应行。
提前致谢。
【问题讨论】:
标签: python pandas csv dictionary