我有一个数据帧,我想更改列名。目前我正在使用下面的方法,包括转置、重新编制索引和调回。一定有更简单的方法。。。。。在
如有任何建议,我们将不胜感激
import pandas as pd
#make a dataframe with wacky column names
d = {'garbled #### one' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd']),
'garbled ### two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
#fix the column names by transposing, reseting index, string manipulation,
#and transposing back
df = df.T
df = df.reset_index()
df['index'] = df['index'].apply(lambda x: x.split()[0]+ " " +x.split()[2])
df = df.set_index('index')
df = df.T
df
index garbled two garbled one
a 1 1
b 2 2
c 3 3
d 4 4
谢谢, 扎克cp
也许我低估了这个问题,但这里有一个相当简单的方法。在
获取列名列表(实际上是一个
pd.Index
),方法是:迭代列名以查看是否有任何列名称被混淆。如果发现列名称有误,请使用正确的名称创建新列,然后删除旧列,如下所示:
^{pr2}$除非表很大,而且需要考虑复制的数据量,否则这是可行的。在
rename_axis
允许在不创建/删除列的情况下重命名。重命名可以用函数或一对一映射(dict-like)完成,映射可以是部分的(不必包括所有名称)。在相关问题 更多 >
编程相关推荐