连接数据框内的列

时间:2018-07-02 16:50:34

标签: python string pandas dataframe series

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

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

series.to_string

以及带有

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

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

对此(我刚刚学习Python)有点不知所措,并希望能有所帮助。

1 个答案:

答案 0 :(得分:3)

您可以使用+连接熊猫系列中的字符串。另外,您可以使用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本身可能不是问题。熊猫经常猜测您是在操作副本而不是视图。如果您通过上述解决方案看到此警告,则可以放心地忽略此警告。