下午好,
我有一些.csv文件要转换为pandas DataFrames。虽然它们在同一列中包含相同类型的数据,但它们具有不同的列名。我试图在运行中进行所有小的转换,以便能够一次性连接DataFrame。我遇到的问题是,据我所知,无法访问“炸上”的DataFrame属性,首先将其分配给变量然后访问数据。通过以下方式:
df = pd.read_csv("my_csv.csv")
df = df.rename(columns=dict(zip(df.columns, [my_columns])))
所以我想知道是否有人知道如何做以下事情的方法:
(pd.read_csv("my_csv.csv")
.rename(columns=dict(zip(SELF.columns, [my_columns])))
)
其中SELF
引用刚刚创建的DataFrame。
到目前为止,我已尝试使用lambda
函数失败,因为我知道它们可用于按刚刚创建的对象(例如[lambda x: x.ColumnA > 20]
提前谢谢。
修改
我能够在.pipe()
的帮助下做我想要的事情。我做了以下事情:
def rename_columns(self, columns):
return self.rename(columns=dict(zip(self.columns, columns)))
(pd.DataFrame([{'a':1},{'a':1},{'a':1},{'a':1},{'a':1}])
.pipe(rename_columns, ['b'])
)
答案 0 :(得分:1)
您可以使用.set_axis
:
(pd.DataFrame(np.random.randn(5, 5))
.set_axis(['A', 'B', 'C', 'D', 'E'], axis=1, inplace=False)
)
inplace
将在未来版本的pandas中更改,但目前默认为True
; axis=1
对列进行操作。