首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次运行代码时,将列值存储在另一列中

每次运行代码时,将列值存储在另一列中
EN

Stack Overflow用户
提问于 2022-08-15 15:29:51
回答 1查看 18关注 0票数 0

PYTHON编码

我的目标是每次运行Python代码时,将一个列值存储在另一个特定列中。它将基本上是比较两个excel电子表格(昨天和今天)的一个特定的列。例如,面试的候选人#是我想从其中提取的列值,并将其存储在新列“昨天面试的候选人的#”中。

文件#1

学校#今天面试的候选人#

美国广播公司访谈25

文件#2

学校#今天面试的候选人#昨天面试的候选人##

美国广播公司采访30人访谈25

EN

回答 1

Stack Overflow用户

发布于 2022-08-15 20:52:26

我不知道我是否理解您想要做什么,但是我假设您想要从您的dataframe中更改某些列中的值,同时将旧值保留在另一列上。如果是这样的话,下面是如何做到这一点的,尽管我不建议将它用于测试以外的任何其他目的:

代码语言:javascript
复制
import pandas as pd
from datetime import datetime


class CustomDataFrame(pd.DataFrame):
    """
    PROBABLY NOT A GOOD IDEA!

    Pandas DataFrame class with custom `__setattr__`, and `__setitem__` that store
    the previous values from a given column, before modifying it.
    """

    def __setattr__(self, key, value):
        if hasattr(self, key):
            self[key + '_' + datetime.now().strftime('%Y_%m_%d_%H%M%S')] = self[key]
        self[key] = value

    def __setitem__(self, key, value):
        if hasattr(self, key):
            super().__setitem__(key + '_' + datetime.now().strftime('%Y_%m_%d_%H%M%S'), self[key])
        super().__setitem__(key, value)

## Example on how it works:

dictionary = {'name1': 'A', 'name2': 'B', 'value1': [1, 2, 3, 4], 'value2': [6, 3, 4, 5]}

df = CustomDataFrame(dictionary)
print(df)
"""
  name1 name2  value1  value2
0     A     B       1       6
1     A     B       2       3
2     A     B       3       4
3     A     B       4       5
"""

# Modifying values from column "name1":

df['name1'] = 'B'
print(df)
"""
  name1 name2  value1  value2 name1_2022_08_15_205120
0     B     B       1       6                       A
1     B     B       2       3                       A
2     B     B       3       4                       A
3     B     B       4       5                       A
"""

# Modifying "name1" once again:

df.name1 = 'C'
print(df)
"""
  name1 name2  value1  value2 name1_2022_08_15_205120 name1_2022_08_15_205313
0     C     B       1       6                       A                       B
1     C     B       2       3                       A                       B
2     C     B       3       4                       A                       B
3     C     B       4       5                       A                       B
"""
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73363163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档