python - 连接数据框中的列

标签 python string pandas dataframe series

我有一个大型 csv 文件,我在其中过滤掉了所需的行并创建了更小、更易于管理的数据框(称为“CL”)。每行都有一个 Int64 格式的契约(Contract)月份和契约(Contract)年份(我相信)。我想创建一个以日期格式(例如 MM-YYYY)组合两者的列,但遇到困难。

我尝试将列提取到 pandas 系列并转换为字符串

series.to_string

以及带有

的各个列
CL['CONTRACT MONTH']= CL['CONTRACT MONTH'].astype(str)

后一种方法给我一条消息“...SettingWithCopyWarning: 尝试在 DataFrame 的切片副本上设置一个值。 尝试使用 .loc[row_indexer,col_indexer] = value 代替”

我对此有点难以理解(刚刚学习Python),希望得到一些帮助。

最佳答案

您可以使用 + 连接 Pandas 系列中的字符串。此外,您可以使用pd.Series.str.zfill来确保月份始终有2个字符:

df = pd.DataFrame([[10, 1995], [3, 1996], [2, 1998], [5, 2000]],
                  columns=['MONTH', 'YEAR'])

df['DATE'] = df['MONTH'].astype(str).str.zfill(2) + '-' + df['YEAR'].astype(str)

print(df)

   MONTH  YEAR     DATE
0     10  1995  10-1995
1      3  1996  03-1996
2      2  1998  02-1998
3      5  2000  05-2000

您的SettingWithCopyWarning本身可能并不代表问题。 Pandas 通常会猜测您正在操作副本而不是 View 。如果您在上述解决方案中看到此警告,您可以安全地忽略此警告。

关于python - 连接数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51140575/

相关文章:

c# - 正则表达式根据多次检查取值

javascript - JavaScript/Jquery 中句子的第一个字母大写

python - 正则表达式:匹配除 unicode 字母以外的所有内容

Python Pandas df,将货币金额中的 $、M 和 K 替换为 int 的最佳方法

python - 混合数据类和枚举时的反直觉结果

python - 根据句子中的单词对多个句子进行句子分类

regex - 匹配除包含 '_iq_' 以外的所有内容

python - OpenCV(python)基础矩阵和基本矩阵不一致

Pythonic 方式获取在 yaml 中定义或未定义的值

pandas - 如何将数据框的单个值除以每月平均值?