当我们从其他对象创建一个新的数据帧时,比如dict的dict或list的dict,我们怎么知道哪些标签是列或索引。
dd = {'one': {'a': 1.0, 'b': 2.0, 'c': 3.0, 'd': 4.0},
'two': {'a': 4.0, 'b': 3.0, 'c': 2.0, 'd': 1.0}}
ld = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]
pd1 = pd.DataFrame(dd)
# pd1:
# one two
# a 1.0 4.0
# b 2.0 3.0
# c 3.0 2.0
# d 4.0 1.0
pd2 = pd.DataFrame(ld)
# pd2:
# a b c
# 0 1 2 NaN
# 1 5 10 20.0
为什么a
,b
,c
是pd1中的索引,但是pd2中的列?
据我所知,外部标签是列,内部级别是索引(如果存在)。因此,one
中的外部标签two
和dd
用作pd1中的列和内部标签a
,b
,c
和{ {1}}用作索引。但是,d
,a
和b
用作列,因为它们位于ld中的标签之外。
我不知道这种理解是否正确。是否有反对它的反例或关于在创建数据帧时决定列和索引的任何更好的解释?