我已经刮了一个PDF表格,它带有一个恼人的格式化功能。
该表有两列。在某些情况下,一行保留的值应该是A列的值,另一行保留的值应该是B列的值。如下所示:
df = pd.DataFrame()
df['names'] = ['John','Mary',np.nan,'George']
df['numbers'] = ['1',np.nan,'2','3']
我想重新设置数据库的格式,这样只要df ['numbers']中有一个空单元格,它就会用下一行的值来填充它,然后我应用. dropna()来消除仍然错误的单元格。
我说过:
for i in range(len(df)):
if df['numbers'][i] == np.nan:
df['numbers'][i] = df['numbers'][i+1]
数据框没有变化,也没有错误信息。
我错过了什么?
2条答案
按热度按时间6ojccjat1#
虽然我不认为这解决了所有问题,但不更新 Dataframe 的原因是
if df['numbers'][i] == np.nan:
行,因为它的计算结果总是False。在这种情况下,要实现nan的vlayed测试,必须使用
if pd.isnull(df['numbres'][i]):
,这将根据单元格内容计算True或False。gdrx4gfi2#
这是我找到的解决方案:
这可能不是最优雅的,但它的工作。