如何在实例化Pandas DataFrame的同一行引用自身并删除首列?
一行完成CSV读取并删除第一列的实现方法
当然可以在链式调用里完成这个操作!你之前用self的问题在于,self是类实例方法里的专属变量,而这里我们还没把读取后的DataFrame赋值给df,自然没法用它来引用对象本身。不过有几个简单的办法能实现你的需求:
用
pipe传递当前实例:pipe方法可以把链式调用中当前的DataFrame传递给自定义函数,这样就能在函数里操作它了:df = pd.read_csv(csvfile).pipe(lambda x: x.drop(x.columns[[0]], axis=1))这里的
x就代表刚读取到的DataFrame,我们可以直接用它来获取列名并删除第一列。用
iloc直接选择列:如果你的需求只是跳过第一列,用iloc切片会更简洁:df = pd.read_csv(csvfile).iloc[:, 1:][:, 1:]表示选取所有行,以及从第二列开始的所有列,本质上和删除第一列效果完全一致。从读取环节直接处理(更优):既然你提到这个第一列是
pd.to_csv输出的索引,那其实可以在读取时直接把它设为索引,省掉删除的步骤:df = pd.read_csv(csvfile, index_col=0)这个方法从源头解决问题,避免了生成多余的数据列,是更推荐的做法。
这几种方式都能帮你在一行代码里完成读取+删除的操作,不用拆成两步执行~
内容的提问来源于stack exchange,提问作者Ti me
相关产品推荐
相关产品推荐

