怎么返回的值都是NaN?哪里写错了呀
import pandas as pddata = {'a':'tony','b':'jenny','c':'tom'}
s = pd.Series(data,index=)
print(s)
这个问题是因为你在创建 pandas Series 时,索引与字典键的对应不一致导致的。你为 Series 提供的索引是数字,而字典的键是字符。这就是为什么你得到的所有结果都是 NaN。
在 pandas 中,Series 是一种一维的数据结构,类似于一维数组,列表或一列在数据库中的数据。每个 Series 都有一个索引,并且你可以通过这个索引访问 Series 中的元素。当你使用字典创建 Series 时,如果你没有指定索引,则 pandas 会默认使用字典的键作为索引。如果你指定了索引,则 pandas 会尝试使用这个索引找到字典中的值,如果找不到对应的键,则会返回 NaN。
下面是正确的代码,希望对你有所帮助:
import pandas as pd
data = {'1':'tony','2':'jenny','3':'tom'}
s = pd.Series(data,index=['1','2','3'])
print(s)
在这个代码中,我把字典的键改为字符串类型的数字,这样它们就可以和指定的索引匹配了。 isdkz 发表于 2023-6-7 10:43
这个问题是因为你在创建 pandas Series 时,索引与字典键的对应不一致导致的。你为 Series 提供的索引是数 ...
里面是都必须是数字或者字母吗?还是字符串对应字符串就行?下面两种情况也是返回NaN
import pandas as pd
data={'a':'tony','b':'jen','c':'tom'}
s = pd.Series(data,index=['1','2','3'])
print(s)
import pandas as pd
data={'a':'tony','b':'jen','c':'tom'}
s = pd.Series(data,index=['h','i','j'])
print(s) hahadaxiao 发表于 2023-6-7 11:02
里面是都必须是数字或者字母吗?还是字符串对应字符串就行?下面两种情况也是返回NaN
Pandas Series 的索引(index)和数据字典(data)的键(key)必须严格匹配才行。在你给出的例子中,你的字典键是 'a','b','c',但你提供的索引是数字 ['1','2','3'] 或者字母 ['h','i','j']。因此,Pandas 在索引中寻找数据字典的键时,找不到匹配的项,结果返回了NaN。
不论是数字、字母还是其他类型,只要索引和键严格匹配就可以。字符串对应字符串是可以的,只要它们完全相同。例如,如果你的数据字典的键是字符串 '1','2','3',那么你的索引也应该是字符串 '1','2','3',而不是整数 1,2,3 或其他不同的字符串。
下面的代码,我把你的索引改为 'a','b','c',这样就可以匹配你的数据字典的键了:
import pandas as pd
data = {'a':'tony','b':'jen','c':'tom'}
s = pd.Series(data,index=['a','b','c'])
print(s)
如果你没有特别的需要,你其实可以不提供索引,Pandas 会自动使用字典的键作为索引。例如:
import pandas as pd
data = {'a':'tony','b':'jen','c':'tom'}
s = pd.Series(data)
print(s)
hahadaxiao 发表于 2023-6-7 11:02
里面是都必须是数字或者字母吗?还是字符串对应字符串就行?下面两种情况也是返回NaN
还以为是重新设置索引值,理解错了,谢谢,
页:
[1]