我试图将数据框的列更改为无效。
以下是数据框:
>>> file = open("data.csv", "r")
>>> data = pd.DataFrame(file)
>>> print(data)
0
0 date,1. open,2. high,3. low,4. close,5. volume\n
1 2020-01-14,316.7,317.57,312.17,312.68,40653457...
2 2020-01-15,311.85,315.5,309.55,311.34,30480882...
3 2020-01-16,313.59,315.7,312.09,315.24,27207254...
这是data.rename函数,用于更改记录的列名-https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rename.html
#Trying to change the columns with a dict
>>> data.rename(columns={"date": "date", "1. open": "open", "2. high": "high", "3. low": "low", "5. volume": "volume"})
0
0 date,1. open,2. high,3. low,4. close,5. volume\n
1 2020-01-14,316.7,317.57,312.17,312.68,40653457...
2 2020-01-15,311.85,315.5,309.55,311.34,30480882...
3 2020-01-16,313.59,315.7,312.09,315.24,27207254...
我在做什么错了?
更新: 感谢您的所有答复。
我明确定义了我想查看的列,并且所有列都可以完美地工作。
>>> df.columns = ['col1', 'col2', 'col3', 'col4', 'col5', 'col6']
>>> print (df)
col1 col2 col3 col4 col5 col6
0 2020-01-14 316.70 317.57 312.17 312.68 40653457.0
1 2020-01-15 311.85 315.50 309.55 311.34 30480882.0
2 2020-01-16 313.59 315.70 312.09 315.24 27207254.0
答案 0 :(得分:1)
正如其他人所说,在将csv读取到pd.read_csv("data.csv", columns=['col1', 'col2',...])
时使用DataFrame
。
此外,这是更改DataFrame
列名的简便方法:
df.columns = ['col_name1', 'col_name2', ...]
答案 1 :(得分:0)
使用熊猫时无需打开文件;
data = pandas.read_csv('path_to/your_file.csv')
我总是将inplace=True
添加到重命名功能中。
但是,如果您只想从列名中删除数字,则也可以这样做;
data.columns = [col.split()[1] for col in data.columns]
答案 2 :(得分:0)
在读取文件时,您可以显式指定新的列名(除了文件中已经存在的列名),如下所示:
df = pd.read_csv('data.csv', columns=['new_col1', 'new_col2', ...])
但是,如果您不添加columns属性,那么默认情况下,csv文件中提到的列名称将由数据框使用。