连接数据框中的列

问题描述 投票:2回答:1

我有一个大的csv文件,我已经过滤掉了我想要的行,并创建了更小的更易于管理的数据帧(称为“CL”)。 Int64中的每一行都有合约月和合约年(我相信)。我想创建一个以日期格式(例如,MM-YYYY)组合两者并且有困难的列。

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

series.to_string

以及各个列

CL['CONTRACT MONTH']= CL['CONTRACT MONTH'].astype(str)

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

这个(稍微学习Python)并希望得到一些帮助。

python string pandas dataframe series
1个回答
3
投票

您可以使用+在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经常猜测你是在副本而不是视图上操作。如果您使用上述解决方案,可以安全地忽略此警告。

© www.soinside.com 2019 - 2024. All rights reserved.