python - 新列取自先前列的数字加上数字之间的特殊字符
问题描述
我有一个带有数字的数据框,我想在同一个数据框中创建一个新列,其中第一列的值加上“:”加上第二列的值。
data = {'First Column Name': ['1', '2'],
'Second Column Name': ['555', '666']
}
df = pd.DataFrame (data, columns = ['First Column Name','Second Column Name'])
print (df)
First Column Name Second Column Name
0 1 555
1 2 666
我需要的欲望栏应该是这样的
Desire column
0 1:555
1 2:666
第一列的值可以是数字或字符 X 或 Y。第二列的值只能是从 de 1 到 9999999999 的数字
解决方案
使用str.cat:
df['Desire column'] = df['First Column Name'].str.cat(df['Second Column Name'], sep=':')
print(df)
输出
First Column Name Second Column Name Desire column
0 1 555 1:555
1 2 666 2:666
作为备选:
df['Desire column'] = df['First Column Name'] + ':' + df['Second Column Name']
如果列是数字类型,请先使用astype转换它们:
df['Desire column'] = df['First Column Name'].astype(str) + ':' + df['Second Column Name'].astype(str)
这同样适用于cat。请注意,如果您使用的是 pandas 1.0+,推荐的方法是:
df['Desire column'] = df['First Column Name'].astype('string') + ':' + df['Second Column Name'].astype('string')
这意味着dtype将是StringDtype。要了解为什么建议这样做并学习一些使用文本的技巧,请阅读用户指南。
推荐阅读
- docker - 如何设置 HAProxy 以将访问令牌添加到客户端请求
- python - Python Fuzzy Wuzzy 百万记录
- docker - ENTRYPOINT、CMD 和运行优先级
- powerbi - Power BI 动态图例
- c# - 为什么当我向flowLayoutPanel中添加一定数量的控件时,添加的数量比c#中想要的多?
- excel - VB.Net:Excel 单元格周围的所有边框
- kubernetes - kube-proxy:另一个应用程序当前持有 xtables 锁
- linux - 如何将 localhost 重定向/映射到指向其他东西的东西?
- node.js - 如何将反应值传递给 Node.js api 调用
- php - 未在 Laravel 5.6 中加载引导 cdn