我想将行添加到多维pd.Series。

b = pd.Series([1,1,2,3], index = [["digit", "digit", "digit", "digit"], ["one", "one", "two", "three"]])

b
Out[30]:
digit  one      1
       one      1
       two      2
       three    3
dtype: int64


现在,当我做

b.loc["digit"].loc["four"] = 4


什么都没发生。没有错误,但是b保持不变。
尽管此方法适用于一维系列

最佳答案

您需要sort_index是因为:


  PerformanceWarning:索引超过lexsort深度可能会影响性能。


然后用loc元组:

b = b.sort_index()
b.loc[("digit", "four")] = 4
print (b)
digit  one      1
       one      1
       three    3
       two      2
       four     4
dtype: int64


concat的另一种解决方案:

c = pd.Series([4], index=pd.MultiIndex.from_arrays([['digit'],['four']]))
b = pd.concat([b, c])
print (b)
digit  one      1
       one      1
       two      2
       three    3
       four     4
dtype: int64

关于python - 大尺寸物体的 Pandas 扩大,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44996599/

10-12 23:48