我有以下pandas DataFrame:
import pandas as pd
import numpy as np
data = 'filename.dat'
df = pd.read_table(data)
print(df)
0.098722 08l23252 243434214 5 True
0 0.469112 -0.282863 -1.509059 2 True
1 0.283421 1.224234 7.823421 2 False
2 -1.135632 1.212112 -0.173215 4 False
3 2.34 0.271 0.0932 4 True
4 0.119209 -1.044236 -0.861849 4 True
5 -2.104569 -0.494929 1.071804 4 False
6 0.469112 -0.282863 -1.509059 3 True
7 1.023236 1.224234 7.823421 3 False
8 -1.135632 1.212112 -0.173215 3 False
9 23.23422 2.613492 2.341592 1 True
....
保存filename.dat
中的数据,使第一行被视为列。
df.columns
输出
Index(['0.098722', '08l23252', '243434214', '5', 'True'], dtype='object')
如何添加一行,使当前“列”值行向下移动到数据表中,我可以按实际列名重命名列?
此刻,我无法尝试
df.columns = ['A1', 'B1', 'C1', 'D1', 'E1']
因为这会简单地删除此行并使用A1
,B1
等覆盖值。
A1 B1 C1 D1 E1
1 0.283421 1.224234 7.823421 2 False
2 -1.135632 1.212112 -0.173215 4 False
3 2.34 0.271 0.0932 4 True
4 0.119209 -1.044236 -0.861849 4 True
....
答案 0 :(得分:3)
试试这个:
df = pd.read_table(data, names=['A1', 'B1', 'C1', 'D1', 'E1'], header=None)
来自docs:
名称:类似数组,默认无
要使用的列名列表。 如果文件不包含标题行,则应明确传递header = None
答案 1 :(得分:2)
添加参数names
:
df = pd.read_table(datan, names=['A1', 'B1', 'C1', 'D1', 'E1'])
但看起来更好的ID使用read_csv
:
import pandas as pd
import io
temp=u"""
9,40
1,70"""
#after testing replace io.StringIO(temp) to filename
df = pd.read_csv(io.StringIO(temp), names=['b','m'])
print (df)
b m
0 9 40
1 1 70