Python数据帧行和列
我是一名新的python建模师,目前在一行代码中遇到一些问题,这对很多人来说可能是非常基本的Python数据帧行和列,python,python-2.7,pandas,dataframe,header,Python,Python 2.7,Pandas,Dataframe,Header,我是一名新的python建模师,目前在一行代码中遇到一些问题,这对很多人来说可能是非常基本的 0 1 2 3 0 ITEM Dan Jane Fan 1 77 78 40 0 2 89 53 72 0 3 20 19 79 0 4 81 54 93 0 5 77 76 99 0 我正在使用Python2.7,并已成功地使用xlwings将外部工作簿中的命名范围复制为pd.dataframe格式。除了df.in
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
我正在使用Python2.7,并已成功地使用xlwings将外部工作簿中的命名范围复制为pd.dataframe格式。除了df.index和df.columns之外,其他一切都正常工作。目前,代码将1分配给n(基于行和列的数量)个数字作为索引和列名
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
有没有办法,我使用导入数据的第一列值作为df.index,第一行作为df.column
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
有人能帮我弄到这样的东西吗:
df = pd.DataFrame(myExcelRange, df.index = 'first column values', df.columns = 'first row values')
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
myExcelRange的形状和名称每次都可能不同
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
任何指导方针都将不胜感激
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
例如:
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
>myExcelRange
ITEM Dan Jane Fan
A 77 78 40
B 89 53 72
C 20 19 79
D 81 54 93
E 77 76 99
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
熊猫回来了
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
所需的
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
ITEM Dan Jane Fan
A 76 89 100
B 59 72 24
C 69 73 19
D 70 92 43
E 65 94 30
您可以使用第一列,然后选择第一行,并将其分配给df.columns
,最后通过iloc
从数据中删除第一行:
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
myExcelRange = [['a','b','c'],['d','e','f'],['g','h','i']]
df = pd.DataFrame(myExcelRange)
print (df)
0 1 2
0 a b c
1 d e f
2 g h i
df = df.set_index(0)
df.columns = df.iloc[0,:]
#for nicer df remove index and column names
df.index.name = None
df.columns.name = None
print (df.iloc[1:,:])
b c
d e f
g h i
如前所述,可能与参数index\u col
一起使用:
0 1 2 3
0 ITEM Dan Jane Fan
1 77 78 40 0
2 89 53 72 0
3 20 19 79 0
4 81 54 93 0
5 77 76 99 0
df = pd.read_excel('file.xlsx', index_col=0)
print (df)
Dan Jane Fan
ITEM
A 77 78 40
B 89 53 72
C 20 19 79
D 81 54 93
什么是
type(myExcelRange)
?它是一种“列表”类型。您可以添加一些示例,如myExcelRange=['a'、'b'、'c']、['d'、'e'、'f']]
和所需的输出吗?或者您需要选择列中的第一个值并通过df=pd.DataFrame(myExcelRange).iat[0]
或df=pd.DataFrame(myExcelRange).iloc[0,0]
?或者只重命名第一个索引值和第一列值?我一直在使用它,并使用df=df.set\u index(0)-这似乎是使用第一列值作为索引。但是,我需要找到一些set\u column类型的函数