Python pandas 如何复制某些列

我有一个数据框行:

key1 key2 key3 val1 val2 val3 .. valn
 a    b    c     1   2     3      14

我想复制值列:

key1 key2 key3 val1_0 val2_0 val3_0 .. valn_0 val1_1 val2_1 val3_1 .. valn_1
 a    b    c     1     2      3          14     1       2     3      14

做这个的最好方式是什么?


哔哔one
浏览 317回答 3
3回答

达令说

尝试s = df.filter(like='val')df = pd.concat([df.drop(s.columns,1),s.add_suffix('_0'),s.add_suffix('_1')],axis=1)dfOut[106]:   key1 key2 key3  val1_0  val2_0  ...  valn_0  val1_1  val2_1  val3_1  valn_10    a    b    c       1       2  ...     NaN       1       2       3     NaN[1 rows x 11 columns]

回首忆惘然

最简单的方法是迭代你的列,检查它是否是数字并复制它。import pandas as pdfrom pandas.api.types import is_numeric_dtypedf = pd.DataFrame({'A': ['a', 'b', 'c'], 'B': [1.0, 2.0, 3.0]})columns = df.columnsfor col in columns:    if is_numeric_dtype(df[col]):        df[col + '_1'] = df[col]print(df.columns)>> ['A','B','B_0']

繁花如伊

从 df.columns 中获取所有列名。然后进行字符串操作,例如添加 df 列名称独有的内容。然后循环遍历分配部分中的新列名并将旧列分配给它。伪代码for x in df.columns:    df[x+"new"] =df[x]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python