我有一个名为的数据框dfimp:
>>dfimp
Column1 Column2
vo_11
102 0.023002 0
301 3571.662104 0
302 1346.910261 0
...
Run Code Online (Sandbox Code Playgroud)
在我的noob意见中它的三列?但:
>>dfimp.dtypes
Column1 float64
Column2 float64
dtype: object
Run Code Online (Sandbox Code Playgroud)
那么它的两列呢?什么是第一个(vo_11)被称为?我想用它来进行合并但是当我这样做时我得到错误,说没有列名vo_11.
它被称为index,检查:
print (df.index)
Int64Index([102, 301, 302], dtype='int64', name='vo_11')
Run Code Online (Sandbox Code Playgroud)
还检查文档:
pandas对象中的轴标记信息有多种用途:
- 使用已知指标识别数据(即提供元数据),这对于分析,可视化和交互式控制台显示非常重要
- 启用自动和显式数据对齐 -
允许直观获取和设置数据集的子集
如果需要merge两者的索引DataFrames:
df = pd.merge(df1, df2, left_index=True, right_index=True)
Run Code Online (Sandbox Code Playgroud)
或使用concat:
df = pd.concat([df1, df2], axis=1)
Run Code Online (Sandbox Code Playgroud)
注意:
用于匹配相同类型的需求索引 - 两者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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1299 次 |
| 最近记录: |