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