python - 在列的每个值中添加一个元素
问题描述
我有一列给出日期(它的类型是 str),另一列给出名字,我希望 2020 年的所有名字在名字的末尾都有“_2020”,2021 年也是如此,以及它的 pandas DataFrame。
由于我有数千行,我需要一个自动执行任务的循环。
这就像从这个开始:
时间 | 姓名 |
---|---|
2020-12-26 | 约翰 |
2020-05-06 | 杰克 |
2021-03-06 | 史蒂夫 |
对此:
时间 | 姓名 |
---|---|
2020-12-26 | 约翰_2020 |
2020-05-06 | 杰克_2020 |
2021-03-06 | 史蒂夫_2021 |
解决方案
尝试:
df['Time']=pd.to_datetime(df['Time'])
#ensure that Time column is of dtype datetime[ns]
df['Name']=df['Name']+'_'+df['Time'].dt.year.astype(str)
#finally assign columns
df的输出:
Time Name
0 2020-12-26 John_2020
1 2020-05-06 Jack_2020
2 2021-03-06 Steve_2021
推荐阅读
- html - 在 iPhone 中,CSS 在电子邮件模板中不起作用
- react-native - WebView 在弹出式反应原生上不起作用?
- ruby-on-rails - RSpec:命名路由还是硬编码 URL?
- rundeck - 元作业中的 Rundeck 全局变量未解析
- php - 多个 Ajax 登录表单
- ethereum - 如何订阅 ERC20 余额变更
- conditional-statements - 具有决策变量和多重关系的条件语句
- android - 在 jni 中使用 c++ 类
- java - 无法在 netbean 8.2 和 jdk1.8.0_231 中运行程序“cmd”java maven 项目
- django - Django - 'bool' 对象不可调用