- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
基本上,我正在遍历一堆 CSV 文件,最后想将每个数据帧append
合并为一个。实际上,我只需要一个 rbind
类型的函数。所以,我做了一些搜索并关注了 guide .但是,我仍然没有得到理想的解决方案。
下面附有示例代码。例如,data1 的形状始终为 47 x 42。但是 data_out_final
的形状在前三个文件之后变为 (47, 42)、(47, 84) 和 (47, 126)。理想情况下,它应该是 (141, 42)。此外,我检查了 data1
的索引,即 RangeIndex(start=0, stop=47, step=1)
。感谢任何建议!
我的 pandas
版本是 0.18.1
appended_data = []
for csv_each in csv_pool:
data1 = pd.read_csv(csv_each, header=0)
# do something here
appended_data.append(data2)
data_out_final = pd.concat(appended_data, axis=1)
如果使用 data_out_final = pd.concat(appended_data, axis=1)
,data_out_final 的形状变为 (141, 94)
有点想明白了。实际上,您必须在 pd.concat
之前标准化列名。
最佳答案
>>> df1
a b
0 -1.417866 -0.828749
1 0.212349 0.791048
2 -0.451170 0.628584
3 0.612671 -0.995330
4 0.078460 -0.322976
5 1.244803 1.576373
6 1.169629 -1.135926
7 -0.652443 0.506388
8 0.549604 -0.691054
9 -0.512829 -0.959398
>>> df2
a b
0 -0.652161 0.940932
1 2.495067 0.004833
2 -2.187792 1.692402
3 1.900738 0.372425
4 0.245976 1.894527
5 0.627297 0.029331
6 -0.828628 -1.600014
7 -0.991835 -0.061202
8 0.543389 0.703457
9 -0.755059 1.239968
>>> pd.concat([df1, df2])
a b
0 -1.417866 -0.828749
1 0.212349 0.791048
2 -0.451170 0.628584
3 0.612671 -0.995330
4 0.078460 -0.322976
5 1.244803 1.576373
6 1.169629 -1.135926
7 -0.652443 0.506388
8 0.549604 -0.691054
9 -0.512829 -0.959398
0 -0.652161 0.940932
1 2.495067 0.004833
2 -2.187792 1.692402
3 1.900738 0.372425
4 0.245976 1.894527
5 0.627297 0.029331
6 -0.828628 -1.600014
7 -0.991835 -0.061202
8 0.543389 0.703457
9 -0.755059 1.239968
除非我误解了您的需求,否则这就是您所需要的。
关于python - Pandas 等效的 rbind 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38838059/
我需要重新绑定(bind)两个大数据帧。现在我用的是 df 根据 nikola 的评论,这里是 ?rbindlist 的描述(v1.8.2 中的新增功能): Same as do.call("rbi
我想使用以下代码将列表转换为数据框: ls<-list(a=c(1:4),b=c(3:6)) do.call("rbind",ls) 添加do.call得到的结果如下图。它返回一个 data.fram
data.table 在更新(=rbind)新行时比 xts 慢近 6 倍的原因是什么? library(quantmod); library(xts); library(data.table) XT
我有一个数据框,其中一列包含不同长度的列表: IP 100 万)时,它会永远运行并崩溃。 有没有办法将其有效地应用于更大的数据集? 谢谢! 最佳答案 所有解决方案都没有重复 plyr::ldply正在
这个问题在这里已经有了答案: do.call(rbind, list) for uneven number of column (4 个回答) Efficient way to rbind data.
我正在尝试使用 dif.length of rows rbind 两个 txt 文件,例如: 我使用这个代码: a<-matrix(1:12,4,3) b<-matrix(21:41,7,3) set
我有一个 list的 list的矩阵。每个list具有相同数量的matrices其中每个 matrix具有相同的列数: set.seed(1) mat.lol % map(do.call, what=
这个问题在这里已经有了答案: Reshaping multiple sets of measurement columns (wide format) into single columns (lo
这有所有迹象表明它是如此愚蠢,以至于我会后悔在公共(public)论坛上提出它,但我现在已经难倒了一些人,所以c'est la vie。 我正在运行以下代码块,但没有得到我期望的结果: zz pad
我有 2 个不同长度的向量: vec1 <- rnorm(18, mean = 0.0018, sd = 0.0001) names(vec1) <- c("CSF", "D10", "D13", "
这个问题在这里已经有了答案: rbind dataframes in a list of lists (3 个答案) 关闭 9 年前。 我想 rbind ALIST 中的所有 a 数据帧 - 我该怎
我有 12 个数据框,每个包含 6 列:5 个名称相同,1 个不同。然后当我调用 rbind()我得到: Error in match.names(clabs, names(xi)) : name
这个问题在这里已经有了答案: Combine (rbind) data frames and create column with name of original data frames (7 个回
我有两个要附加在一起的 data.frames。一个 data.frame 保存过去的数据,另一个 data.frame 保存 future 的预测数据。例如: past rbind(past,fu
我正在尝试将一个命名向量绑定(bind)到一个矩阵上。命名向量的长度与矩阵不同: > m named_vec names(named_vec) rbind(m, named_vec) 我得到以下
示例数据: l <- list(x=data.frame(X1=1,X2=2,X3=3,X4=4,X5=5), y=data.frame(X1=6,X8=7,X4=8,X9=9,X
> part1 part1 key x 1 5 b # key==5,x==b 2 6 d 3 7 a 4 8 c 5 9 b > part2 part2 key x 1
我有大量数据框,我想使用 rbind 将它们组合成一个大数据框。 我在这里看到了这样做的解决方案,但他们假设数据帧存储在数据帧列表中。我的不是,而且我不知道有什么好方法可以将它们全部放入列表中,而无需
我用过这段代码 outcomes_all% theme_zebra %>% autofit ft # Create a temp file tmp % body_add_flextable
我在 R 中工作,我有一个数据集,它是矩阵列表的列表。主列表中的每个子列表都有两个等维矩阵(10 行 x 2 列)。我想将每个矩阵列表 rbind() 变成一个矩阵(20 行 x 2 列)。但我不想将
我是一名优秀的程序员,十分优秀!