首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Pandas中使用迭代连接数据帧,但它不起作用

在Pandas中使用迭代连接数据帧,但它不起作用
EN

Stack Overflow用户
提问于 2020-08-27 02:53:21
回答 1查看 46关注 0票数 0

我有几个数据帧或多或少地被相同的MultiIndex索引(每个数据帧上可能缺少一些值,但总行超过70K,缺少的值总是小于10)。我想要附加/合并/连接到所有它们一个给定的数据帧(使用相同的索引)。我尝试使用带有元组的for迭代来完成此操作,如下面的示例所示。但是,最后,我的所有数据帧都不会合并。我提供了一个发生这种情况的简单示例。为什么它们不合并?

代码语言:javascript
运行
AI代码解释
复制
df1 = pd.DataFrame(np.arange(12).reshape(4,3), index = ["A", "B", "C", "D"], columns = ["1st", "2nd", "3rd"])
df2 = df1 + 2
df3 = df1 - 2
for df in (df1, df2):
    df = pd.merge(df, df3, left_index = True, right_index = True, how = "inner")
df1, df2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-27 04:06:26

你的预期结果是什么?

for循环中,df是循环变量,也是赋值语句左侧的结果。下面是使用print语句提供附加信息的相同循环。我认为你在重写中间结果。

代码语言:javascript
运行
AI代码解释
复制
for df in (df1, df2):
    print(df)
    print('-----')
    df = pd.merge(df, df3, left_index = True, right_index = True, how = "inner")
    print(df)
    print('==========', end='\n\n')
print(df)

您可以像这样组合df1、df2和df3。

代码语言:javascript
运行
AI代码解释
复制
print(pd.concat([df1, df2, df3], axis=1))

   1st  2nd  3rd  1st  2nd  3rd  1st  2nd  3rd
A    0    1    2    2    3    4   -2   -1    0
B    3    4    5    5    6    7    1    2    3
C    6    7    8    8    9   10    4    5    6
D    9   10   11   11   12   13    7    8    9

更新

下面是导入和连接多个CSV文件的惯用方法,可能位于多个目录中。简而言之:将每个文件读取到一个单独的数据帧中;将每个数据帧添加到列表中;在末尾连接一次。

参考:https://pandas.pydata.org/docs/user_guide/cookbook.html#reading-multiple-files-to-create-a-single-dataframe

代码语言:javascript
运行
AI代码解释
复制
import pandas as pd
from pathlib import Path

df = list()

for filename in Path.cwd().rglob('*.csv'):
    with open(filename, 'rt') as handle:
        t = pd.read_csv(handle)
        df.append(t)
        print(filename.name, t.shape)
df = pd.concat(df)
print('\nfinal: ', df.shape)

penny.csv (62, 8)
penny-2020-06-24.csv (144, 9)
...etc

final:  (474, 20)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63608454

复制
相关文章
使用 Pandas 在 Python 中绘制数据
在有关基于 Python 的绘图库的系列文章中,我们将对使用 Pandas 这个非常流行的 Python 数据操作库进行绘图进行概念性的研究。Pandas 是 Python 中的标准工具,用于对进行数据可扩展的转换,它也已成为从 CSV 和 Excel 格式导入和导出数据的流行方法。
用户1880875
2021/09/15
7.1K0
PandasGUI:使用图形用户界面分析 Pandas 数据帧
数据预处理是数据科学管道的重要组成部分,需要找出数据中的各种不规则性,操作您的特征等。Pandas 是我们经常使用的一种工具,用于处理数据,还有 seaborn 和 matplotlib用于数据可视化。PandasGUI 是一个库,通过提供可用于制作
润森
2022/09/22
4K0
PandasGUI:使用图形用户界面分析 Pandas 数据帧
在pandas中使用数据透视表
经常做报表的小伙伴对数据透视表应该不陌生,在excel中利用透视表可以快速地进行分类汇总,自由组合字段聚合计算,而这些只需要拖拉拽就能实现。
bugsuse
2020/11/06
2.8K0
在pandas中使用数据透视表
在pandas中使用数据透视表
经常做报表的小伙伴对数据透视表应该不陌生,在excel中利用透视表可以快速地进行分类汇总,自由组合字段聚合计算,而这些只需要拖拉拽就能实现。
朱卫军 AI Python
2022/04/03
3.1K0
在pandas中使用数据透视表
Pandas DataFrame 数据合并、连接
merge 通过键拼接列 pandas提供了一个类似于关系数据库的连接(join)操作的方法merage,可以根据一个或多个键将不同DataFrame中的行连接起来 语法如下:
马哥Python
2019/06/27
3.5K0
为什么 strace 在 Docker 中不起作用?
在编辑“容器如何工作”爱好者杂志的能力页面时,我想试着解释一下为什么 strace 在 Docker 容器中无法工作。
用户8639654
2021/09/18
6.7K0
Pandas-9. 迭代
Pandas对象之间的底本迭代的行为取决于类型,当迭代一个Series时,它被视为数组,基本迭代产生值。DataFrame和Panel迭代对象的键。 基本迭代(对于i对象)产生:
悠扬前奏
2019/05/29
5130
Pandas DataFrame 中的自连接和交叉连接
在 SQL 中经常会使用JOIN操作来组合两个或多个表。有很多种不同种类的 JOINS操作,并且pandas 也提供了这些方式的实现来轻松组合 Series 或 DataFrame。
deephub
2022/04/14
4.4K0
Pandas DataFrame 中的自连接和交叉连接
数据分析实际案例之:pandas在餐厅评分数据中的使用
为了更好的熟练掌握pandas在实际数据分析中的应用,今天我们再介绍一下怎么使用pandas做美国餐厅评分数据的分析。
程序那些事
2022/02/25
1.7K0
数据分析实际案例之:pandas在餐厅评分数据中的使用
在bootstrap中col-md-offset-* 偏移不起作用
在bootstrap中,使用col-md-offset-1、col-md-offset-2、col-md-offset-3、col-md-offset-4等来设置偏移量很常见,但最近就遇到一个问题了,在最新版的bootstrap4.5中,这个值不起作用了。
kirin
2020/10/27
12.8K1
6. Pandas系列 - 迭代
迭代DataFrame 迭代DataFrame - 遍历数据帧 iteritems()示例 iterrows()示例 itertuples()示例 Pandas对象之间的基本迭代的行为取决于类型。当迭代一个系列时,它被视为数组式,基本迭代产生这些值 注意: 不要尝试在迭代时修改任何对象。迭代是用于读取,迭代器返回原始对象(视图)的副本,因此更改将不会反映在原始对象上。 迭代DataFrame import pandas as pd import numpy as np N=20 df = pd.Data
Python编程爱好者
2020/09/08
6660
6. Pandas系列 - 迭代
探索异步迭代器在 Node.js 中的使用
上一节讲解了迭代器的使用,如果对迭代器还不够了解的可以在回顾下《从理解到实现轻松掌握 ES6 中的迭代器》,目前在 JavaScript 中还没有被默认设定 [Symbol.asyncIterator] 属性的内建对象,但是在 Node.js 中已有部分核心模块(Stream、Events)和一些第三方 NPM 模块(mongodb)已支持 Symbol.asyncIterator 属性。本文也是探索异步迭代器在 Node.js 中的都有哪些使用场景,欢迎留言探讨。
五月君
2020/12/14
7.6K0
探索异步迭代器在 Node.js 中的使用
数据分析实际案例之:pandas在泰坦尼特号乘客数据中的使用
1912年4月15日,号称永不沉没的泰坦尼克号因为和冰山相撞沉没了。因为没有足够的救援设备,2224个乘客中有1502个乘客不幸遇难。事故已经发生了,但是我们可以从泰坦尼克号中的历史数据中发现一些数据规律吗?今天本文将会带领大家灵活的使用pandas来进行数据分析。
程序那些事
2022/02/24
1.4K0
数据分析实际案例之:pandas在泰坦尼特号乘客数据中的使用
在pandas中利用hdf5高效存储数据
HDF5(Hierarchical Data Formal)是用于存储大规模数值数据的较为理想的存储格式。
朱卫军 AI Python
2022/04/03
3K0
在pandas中利用hdf5高效存储数据
阿里Druid数据连接池在SSM框架中的配置使用
首先可以参考阿里在GitHub给出的一些说明:
似水的流年
2018/01/14
2.7K0
在pandas中利用hdf5高效存储数据
HDF5(Hierarchical Data Formal)是用于存储大规模数值数据的较为理想的存储格式。
bugsuse
2020/10/09
5.5K0
在pandas中利用hdf5高效存储数据
Pandas基础:在Pandas数据框架中移动列
有时候,我们需要在pandas数据框架内移动一列,shift()方法提供了一种方便的方法来实现。
fanjy
2022/06/04
3.3K0
Pandas基础:在Pandas数据框架中移动列
pandas中基于范围条件进行表连接
❝本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills ❞
朱卫军 AI Python
2023/09/04
2880
pandas中基于范围条件进行表连接
在pandas中遍历DataFrame行
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
用户7886150
2020/12/26
3.4K0
视频中的 I 帧,P 帧,B 帧
视频传输原理 视频是由一幅幅帧图像和一组音频构成的,视频的播放过程可以简单理解为一帧帧的画面按照时间顺序呈现出来的过程。但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大。这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流中的一部分画面进行压缩(编码)处理。 编码器将多张图像进行编码后生产成一段一段的 GOP ( Group of Pictures ) 如下图, 解码器在播放时则是读取一段一段的 GOP 进行解码后读取画面再渲染显示。GO
用户1097444
2022/06/29
3.7K0
视频中的 I 帧,P 帧,B 帧

相似问题

Pandas:在迭代中连接数据帧

11

使用多索引迭代地连接pandas数据帧

12

使用itertuples迭代pandas数据帧

30

迭代Pandas分组数据帧

25

使用列表理解在Pandas数据帧上迭代

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档