python - 将数据附加到熊猫数据框
问题描述
我正在尝试将具有相同列数的多个数据文件放入一组连续的数据中。x 值是时间,每个后续数据文件都从前一个数据文件完成的时间开始。所以理论上如果我做一些这样的代码:
data = pd.read_csv(r"/PATH/out.txt", sep="\t")
data2 = pd.read_csv(r"/PATH/out2.txt", sep="\t")
data3 = pd.read_csv(r"/PATH/out3.txt", sep="\t")
data4 = pd.read_csv(r"/PATH/out4.txt", sep="\t")
data5 = pd.read_csv(r"/PATH/out5.txt", sep="\t")
data6 = pd.read_csv(r"/PATH/out6.txt", sep="\t")
data7 = pd.read_csv(r"/PATH/out7.txt", sep="\t")
data8 = pd.read_csv(r"/PATH/out8.txt", sep="\t")
print(data)
data.append(data2, ignore_index=True)
data.append(data3, ignore_index=True)
data.append(data4, ignore_index=True)
data.append(data5, ignore_index=True)
data.append(data6, ignore_index=True)
data.append(data7, ignore_index=True)
data.append(data8, ignore_index=True)
print(data)
arr = data.to_numpy()
之前和之后的打印语句应该不同吧?但是当我尝试时,它似乎没有将其他数据文件附加到第一个。我一定遗漏了一些明显的东西,有人可以帮忙吗?
数据文件采用 2 列格式,看起来像这样(最左边的列只是 pandas 索引):
Time(s) CMASS(1,1,53)
0 97.000229 0.999999
1 98.000183 0.999999
2 98.001122 0.999999
3 98.200874 0.999999
4 98.400703 0.999999
.. ... ...
209 119.700410 0.999999
210 119.800410 0.999999
211 119.900410 0.999999
212 120.000400 0.999999
213 120.000400 0.999999
解决方案
DataFrame.append
返回一个新对象,它不会修改调用它的数据框。你必须这样做:
data = data.append(data2)
或者你可以这样做:
data = pd.concat(pd.read_csv(path) for path in list_of_paths_to_csv)
推荐阅读
- flutter - Flutter 给 Container 一个动态高度(ExpansionTile)
- powershell - 将 PNPOnline Get-PNPListItem 与 FolderServerRelativeUrl 和 OneDrive 一起使用
- python - 查找具有最大表面积的边界框轮廓,不包括相交区域
- c++ - 如果 std::vector::insert(pos, value) 的 pos 无效怎么办?
- mysql - 从 MySQL 到 MS SQL Server 的架构迁移
- react-native - React Native 推送通知适用于模拟器,但不适用于真实设备
- python - 检测颜色被看到多少次
- javascript - 如何随机排序/呈现一组调查提示(并以正确的顺序保存响应)?
- c# - 创建设置文件后水晶报告中的错误
- apache-spark - DeepImageFeaturizer reuring error cannot import name ResNet50 from keras.applications in pyspark