先生成一个df对象:
m = pandas.DataFrame(numpy.random.random((10, 5)))
m.columns = ['a', 'b', 'c', 'd', 'e']
下面几种方法产生的对象id跟m都不一样。
# 第一种方法
n = pandas.DataFrame(m)
# 第二种方法
o = pandas.DataFrame(m[['a','c']])
# 第三种方法,这个用在根据条件筛选列名,再根据列名筛选列的场景
ll = ['a', 'd']
cols = m.columns.tolist()
cols_select = cols.copy()
[cols_select.remove(i) for i in cols]
p = m[cols_select]
各位在用列表或pandas.DataFrame对象时要特别注意,有时候根据已有对象直接赋值产生的新对象,往往是之前对象的一个映射,在内存中都是同一块地址,不注意很容易产生bug。