Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >向dataframe中添加一个新列,其中的每一行都根据它所来自的dataframe的标题采用不同的值

向dataframe中添加一个新列,其中的每一行都根据它所来自的dataframe的标题采用不同的值
EN

Stack Overflow用户
提问于 2021-03-16 18:06:50
回答 1查看 19关注 0票数 1

因此,我有一个多个数据帧的列表,并将它们连接在一个大的数据帧中。现在,我想要向最后一个大型数据帧添加一列,但我希望该列的值根据每行首先所属的数据帧的名称而改变。这是一个示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
list_of_df = [march_01, march_02, march_03]
big_df = pd.concat([march_01, march_02, march_03], ignore_index=True)

big_df['new_column'] = # i want this column to adopt the value '01' for those rows that originally belong
                       # to the march_01 dataframe, the value '02' for those rows that originally belong 
                       # to the march_02 dataframe, and so on.
EN

回答 1

Stack Overflow用户

发布于 2021-03-16 18:27:24

一种方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import itertools as it

big_df["new_column"] = list(it.chain.from_iterable([f"{j}".zfill(2)]*len(df)
                                                   for j, df in enumerate(list_of_df, start=1)))

这将获得每个df的长度,并将"0x"部分重复多次。然后chain将它们粘合在一起。

另一种方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

lengths = list(map(len, list_of_df))
starting_points = [0, *np.cumsum(lengths)[:-1]]
big_df.loc[starting_points, "new_column"] =  [f"{j}".zfill(2)
                                              for j, _ in enumerate(list_of_df, start=1)]
big_df["new_column"].ffill(inplace=True)

这首先通过df的长度的累积和来确定大df中的df的起始点(丢弃最后一个的长度,因为它对其起始点无关紧要,并且在第一个前面加上一个0)。然后将这些点放入"0x",最后向前填充剩余的NaN

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

https://stackoverflow.com/questions/66660909

复制
相关文章
【说站】Python DataFrame如何根据列值选择行
以上就是Python DataFrame根据列值选择行的方法,希望对大家有所帮助。
很酷的站长
2022/11/24
5.3K0
【说站】Python DataFrame如何根据列值选择行
从DataFrame中删除列
在操作数据的时候,DataFrame对象中删除一个或多个列是常见的操作,并且实现方法较多,然而这中间有很多细节值得关注。
老齐
2021/03/29
7K0
我是一个DataFrame,来自Spark星球
本文的开头,咱们正式给该系列取个名字了,就叫数据分析EPHS系列,EPHS分别是Excel、Python、Hive和SparkSQL的简称。本篇是该系列的第二篇,我们来讲一讲SparkSQL中DataFrame创建的相关知识。
double
2019/07/23
1.7K0
我是一个DataFrame,来自Spark星球
pycharm查找与替换_python替换dataframe中的值
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/175276.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
6K0
Pandas DataFrame显示行和列的数据不全
pd.set_option('display.max_columns', None)
用户7886150
2020/12/26
6.7K0
Python中的DataFrame模块学
  python 3.6.8 Windows x86 executable installer
py3study
2020/01/08
2.5K0
dataframe行变换为列
使用 import org.apache.spark.sql.functions 里面的函数,具体的方式可以看 functions :
机器学习和大数据挖掘
2019/07/01
1.1K0
(六)Python:Pandas中的DataFrame
        DataFrame与Series相比,除了可以每一个键对应许多值之外,还增加了列索引(columns)这一内容,具体内容如下所示:
小点点
2022/12/12
3.9K0
这个dataframe,有没有好的方法,可以转化成这样一个dataframe
前几天在Python白银交流群【空翼】问了一个pandas处理Excel数据的问题,提问截图如下:
Python进阶者
2023/03/02
8180
这个dataframe,有没有好的方法,可以转化成这样一个dataframe
将DataFrame写入同个表的不同sheetname
在实际工作中总会遇到这样的需求:将类型的数据放在一个excel表格中,但是位置在不同的sheetname。本文介绍使用pandas来实现这样的需求。
皮大大
2023/08/23
3050
pandas按行按列遍历Dataframe的几种方式
iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问。 itertuples(): 按行遍历,将DataFrame的每一行迭代为元祖,可以通过row[name]对元素进行访问,比iterrows()效率高。 iteritems():按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可以通过row[index]对元素进行访问。 示例数据
kirin
2021/04/30
7.1K0
DataFrame的常用操作
Java版本 ​//打印DataFrame中所有的数据(select * from ...) ​​df.show(); ​​//打印DataFrame的元数据(schema) ​​df.printSchema(); //查询某列所有数据 ​​df.select("name").show(); //查询某几个列所有数据并对列进行计算 ​​df.select(df.col("name"),df.col("age").plus(1)).show(); //过滤 ​​df.filter(df.col("ag
编程那点事
2023/02/25
3280
Python+Pandas逐行处理DataFrame中的某列数据(无循环)
创建一个包含10行6列随机数的DataFrame,行标签从大写字母A开始,列标签从小写字母u开始。然后从上向下遍历,如果某行u列的值比上一行u列的值大,就把该行x列的值改为上一行x列的值加1,否则保持原来的值不变。
Python小屋屋主
2023/08/29
4470
Python+Pandas逐行处理DataFrame中的某列数据(无循环)
点击加载更多

相似问题

根据来自不同数据的值向dataframe添加列

10

根据来自另一个dataframe的值向dataframe添加列

12

根据来自另一个dataframe的值向dataframe添加列

11

根据来自另一个DataFrame的信息向DataFrame添加新列

13

根据来自另一个dataframe的多个列向dataframe添加一个新列

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文