如何解决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
做到这一点的最佳方法是什么?
解决方法
尝试
s = df.filter(like='val')
df = pd.concat([df.drop(s.columns,1),s.add_suffix('_0'),s.add_suffix('_1')],axis=1)
df
Out[106]:
key1 key2 key3 val1_0 val2_0 ... valn_0 val1_1 val2_1 val3_1 valn_1
0 a b c 1 2 ... NaN 1 2 3 NaN
[1 rows x 11 columns]
,
最简单的方法是对列进行迭代,检查其是否为数字并重复。
import pandas as pd
from pandas.api.types import is_numeric_dtype
df = pd.DataFrame({'A': ['a','b','c'],'B': [1.0,2.0,3.0]})
columns = df.columns
for 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]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。