python数据框添加一列无列名_Python将列添加到数据框导致NaN
我有一個(gè)系列和df
s = pd.Series([1,2,3,5])
df = pd.DataFrame()
當(dāng)我像這樣向df添加列時(shí)
df.loc[:, "0-2"] = s.iloc[0:3]
df.loc[:, "1-3"] = s.iloc[1:4]
我得到df
0-2 1-3
0 1 NaN
1 2 2.0
2 3 3.0
為什么我會(huì)得到NaN?我嘗試使用正確的idx創(chuàng)建新系列,但是將其添加到df仍然會(huì)導(dǎo)致NaN.
我想要的是
0-2 1-3
0 1 2
1 2 3
2 3 5
解決方法:
嘗試以下任一行.
df.loc[:, "1-3"] = s.iloc[1:4].values
# -OR-
df.loc[:, "1-3"] = s.iloc[1:4].reset_index(drop=True)
您的原始代碼嘗試將數(shù)據(jù)幀df的索引與子集系列s.iloc [1:4]的索引匹配失敗.如果找不到序列中的0索引,則會(huì)在該位置的df中放置一個(gè)NaN值.您可以通過(guò)僅保留值來(lái)解決此問(wèn)題,以便它不會(huì)嘗試在索引上匹配或在子集系列上重置索引.
>>> s.iloc[1:4]
1 2
2 3
3 5
dtype: int64
注意索引值,因?yàn)樵嫉姆亲蛹蛄腥缦?
>>> s
0 1
1 2
2 3
3 5
dtype: int64
df中第一行的索引為0.通過(guò)使用values調(diào)用刪除索引,可以繞過(guò)產(chǎn)生NaN的索引匹配.通過(guò)在第二個(gè)選項(xiàng)中重置索引,可以使索引相同.
標(biāo)簽:pandas,python
來(lái)源: https://codeday.me/bug/20191118/2024531.html
總結(jié)
以上是生活随笔為你收集整理的python数据框添加一列无列名_Python将列添加到数据框导致NaN的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python判断字符是否是字典的键_Py
- 下一篇: 如何用php新增税金一列_PHP计算个人