Python 获取数据帧中的值

Python 获取数据帧中的值,python,pandas,dataframe,indexing,Python,Pandas,Dataframe,Indexing,我的数据框架如下: A B 1 2 3 4 5 4 5 6 7 8 我正试图通过以下方式从此数据帧获取数据: print (file_dataframe.columns) Index(['A', 'B', 'Unnamed: 2'], dtype='object') file_dataframe_values = [cell for column in file_dataframe.columns for cell in file_

我的数据框架如下:

        A   B   
1   2   3   4   5
4   5   6   7   8
我正试图通过以下方式从此数据帧获取数据:

print (file_dataframe.columns)

Index(['A', 'B', 'Unnamed: 2'], dtype='object')

file_dataframe_values = [cell for column in file_dataframe.columns for cell in file_dataframe[column].values.tolist()]
print (file_dataframe_values )

['3', '6', '4', '7', '5', '8']
为什么它从第一行的第一个值开始数据帧

当我使用以下数据帧时:

    A
1   2   3   4   5
4   5   6   7   8


print (file_dataframe.columns)

Index(['A', 'Unnamed: 1', 'Unnamed: 2','Unnamed: 3'], dtype='object')

file_dataframe_values = [cell for column in file_dataframe.columns for cell in file_dataframe[column].values.tolist()]
print (file_dataframe_values )

['2','5','3', '6', '4', '7', '5', '8']
当我使用以下数据框时,第一行为空:

1   2   3   4   5
4   5   6   7   8


print (file_dataframe.columns)

Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2','Unnamed: 3','Unnamed: 4'], dtype='object')

file_dataframe_values = [cell for column in file_dataframe.columns for cell in file_dataframe[column].values.tolist()]
print (file_dataframe_values )

['1','4','2','5','3', '6', '4', '7', '5', '8']
有人能解释一下这种行为吗?

不要通过打印来判断数据帧 在第一个实例中,您有一个带有
多索引的数据帧:

df = pd.DataFrame([[3, 4, 5], [6, 7, 8]],
                  columns=['A', 'B', ''],
                  index=pd.MultiIndex.from_tuples([(1, 2), (4, 5)]))

print(df)

     A  B   
1 2  3  4  5
4 5  6  7  8
df = pd.DataFrame([[2, 3, 4, 5], [5, 6, 7, 8]],
                  columns=['A', '', '', ''],
                  index=[1, 4])

print(df)

   A         
1  2  3  4  5
4  5  6  7  8
在第二个实例中,您有一个带有常规
索引的数据帧:

df = pd.DataFrame([[3, 4, 5], [6, 7, 8]],
                  columns=['A', 'B', ''],
                  index=pd.MultiIndex.from_tuples([(1, 2), (4, 5)]))

print(df)

     A  B   
1 2  3  4  5
4 5  6  7  8
df = pd.DataFrame([[2, 3, 4, 5], [5, 6, 7, 8]],
                  columns=['A', '', '', ''],
                  index=[1, 4])

print(df)

   A         
1  2  3  4  5
4  5  6  7  8
从每个数据帧中提取列、索引和值时,将得到不同的结果。这并不奇怪。但是,它确实需要您了解熊猫索引,这在任何情况下都是一个有用的练习。官方文件的以下部分可能会有所帮助:


不幸的是,没有捷径可走。这纯粹是特定于API的逻辑。

我认为python会将第一个命名列之前的未知列解释为(多)索引,以防您没有指定“header=1”。相反,如果所有数据都未命名,python会将“未命名”分配给所有数据,因为数据帧不能仅由索引列组成。我没有数据索引,实际上它是excel工作表数据,它将其视为索引。我可以做一些事情,因为它不认为它是索引。@ PyuSuth.WaWaS,使用<代码> DF= DF.ReStIB索引()/代码>将索引提升到列。@ JPG,我在阅读Excel时提到了<代码>头= NON//C>。