亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

既然 s 和 t 的索引相同,為什么 t 返回 NaN 作為第一個值?

既然 s 和 t 的索引相同,為什么 t 返回 NaN 作為第一個值?

慕工程0101907 2022-09-13 15:13:50
第一個值是序列 t 的 NaN,但不是 s。為什么即使該系列具有相同的索引,為什么會這樣。import numpy as npimport pandas as pds = pd.Series([1,2,3,4,5,6],index= [1,2,3,4,5,6])t = pd.Series([2,4,6,8,10,12],index= [1,2,3,4,5,6])df = pd.DataFrame(np.c_[s,t],columns = ["MUL1","MUL2"])df["MUL2"] =tdfOutput:  MUL1     MUL20  1        NaN1  2        2.02  3        4.03  4        6.04  5        8.05  6        10.0
查看完整描述

1 回答

?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

如果分配不同的索引值,則生成缺失值,如在第一行中。為了正確分配,需要在 和 中使用相同的值。SeriesSeriesDataFrame


問題是返回沒有索引值的2d數組:np.c_


print (np.c_[s,t])

[[ 1  2]

 [ 2  4]

 [ 3  6]

 [ 4  8]

 [ 5 10]

 [ 6 12]]

因此,如果使用使用構造函數創建,則默認從 以下位置開始:DataFrameRange_Index0


df = pd.DataFrame(np.c_[s,t],columns = ["MUL1","MUL2"])

print (df)

   MUL1  MUL2

0     1     2 <- first 0 index

1     2     4

2     3     6

3     4     8

4     5    10

5     6    12


print (s)

1    1 <- first 1 index

2    2

3    3

4    4

5    5

6    6

dtype: int64


print (t)

1     2 <- first 1 index

2     4

3     6

4     8

5    10

6    12

dtype: int64

如果更改數據幀構造函數,例如通過字典:


df = pd.DataFrame({"MUL1":s, "MUL2":t})

print (df)

   MUL1  MUL2

1     1     2 <- first 1 index

2     2     4

3     3     6

4     4     8

5     5    10

6     6    12

或者將參數添加到構造函數 by 或 Series:indexDataFramest


df = pd.DataFrame(np.c_[s,t],columns = ["MUL1","MUL2"], index=t.index)

print (df)

   MUL1  MUL2

1     1     2

2     2     4

3     3     6

4     4     8

5     5    10

6     6    12

因此,如果賦值,例如新列都正常工作,因為在 和 中相同的索引:tdft


df["MUL3"] =t

print (df)

   MUL1  MUL2  MUL3

1     1     2     2

2     2     4     4

3     3     6     6

4     4     8     8

5     5    10    10

6     6    12    12


查看完整回答
反對 回復 2022-09-13
  • 1 回答
  • 0 關注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號