Pandas dataframe中的第一列不是列?

Pandas dataframe中的第一列不是列?,pandas,Pandas,我有一个数据帧: >>df Column1 Column2 vo1 102 0.023002 0 301 3571.662104 0 302 1346.910261 0 ... 所以有三列?但是: >>df.dtypes Column1 float

我有一个数据帧:

>>df
               Column1    Column2
   vo1                          
    102        0.023002           0
    301     3571.662104           0
    302     1346.910261           0
    ...
所以有三列?但是:

>>df.dtypes
Column1      float64
Column2      float64
dtype: object

那么它是两列?第一个(
vo
)叫什么?我想将其用于合并,但当我这样做时,我收到一个错误,即没有名为
vo
的列,它被称为
索引
,请通过以下方式进行检查:

print (df.index)
Int64Index([102, 301, 302], dtype='int64', name='vo_11')
同时检查:

熊猫对象中的轴标签信息有多种用途:

-使用已知指标识别数据(即提供元数据),这对于分析、可视化和交互式控制台显示非常重要
-启用自动和显式数据对齐
-允许直观地获取和设置数据集的子集

如果需要通过数据帧和数据帧的索引:

df = pd.merge(df1, df2, left_index=True, right_index=True)
或使用:

注意:

为了匹配相同类型的索引,需要使用
int
object
(显然
string

样本:

df1 = pd.DataFrame({
'Column1': {302: 10, 301: 21, 102: 2}, 
'Column2': {302: 0, 301: 0, 102: 0}})
print (df1)
    Column1  Column2
102        2        0
301       21        0
302       10        0

df2 = pd.DataFrame({
'Column1': {302: 4, 301: 5, 304: 6}, 
'Column2': {302: 0, 301: 0, 304: 0}})
print (df2)
     Column1  Column2
301        5        0
302        4        0
304        6        0


它被称为索引。您可以通过调用
dfimp.reset\u index(inplace=True)
为其分配一个新列(从而创建一个新的单调索引)。如果您想丢失旧索引而只获取新的单调索引,请将`drop=True)传递到reset index函数中。
df1 = pd.DataFrame({
'Column1': {302: 10, 301: 21, 102: 2}, 
'Column2': {302: 0, 301: 0, 102: 0}})
print (df1)
    Column1  Column2
102        2        0
301       21        0
302       10        0

df2 = pd.DataFrame({
'Column1': {302: 4, 301: 5, 304: 6}, 
'Column2': {302: 0, 301: 0, 304: 0}})
print (df2)
     Column1  Column2
301        5        0
302        4        0
304        6        0
df = pd.merge(df1, df2, left_index=True, right_index=True)
print (df)
     Column1_x  Column2_x  Column1_y  Column2_y
301         21          0          5          0
302         10          0          4          0

df = pd.merge(df1, df2, left_index=True, right_index=True, how='outer')
print (df)
     Column1_x  Column2_x  Column1_y  Column2_y
102        2.0        0.0        NaN        NaN
301       21.0        0.0        5.0        0.0
302       10.0        0.0        4.0        0.0
304        NaN        NaN        6.0        0.0

df = pd.concat([df1, df2], axis=1) 
print (df)
     Column1  Column2  Column1  Column2
102      2.0      0.0      NaN      NaN
301     21.0      0.0      5.0      0.0
302     10.0      0.0      4.0      0.0
304      NaN      NaN      6.0      0.0

df = pd.concat([df1, df2], axis=1, join='inner') 
print (df)
     Column1  Column2  Column1  Column2
301       21        0        5        0
302       10        0        4        0