Pandas 之 過濾DateFrame中所有小於0的值並替換


Outline

前幾天,數據清洗時有用到pandas去過濾大量數據中的“負值”;

把過濾出來的“負值”替換為“NaN”或者指定的值。

故做個小記錄。

讀取CSV文件

代碼:

import pandas as pd
import numpy as np

df = pd.read_csv('D:\All_Kinds_Stock_Data\windpy_filter_after\SH600036.csv')
df

# 開發環境: ipython notebook 下

讀取本地csv文件,輸出結果如下:

可見里面有很多“負值”。

目的就是將這些“負值”替換掉。

過濾“負值”

代碼:

import pandas as pd
import numpy as np

df = pd.read_csv('D:\All_Kinds_Stock_Data\windpy_filter_after\SH600036.csv')
df[ df < 0 ]  # 過濾出所有小於 0 的對象

# 開發環境: ipython notebook 下

此時拿到的是csv文件中所有小於 0 的元素(也即小於 0 的DateFrame對象)

替換“負值”

將過濾出來小於 0 的DateFrame對象替換成指定值。

這里我需要將它們替換為 NaN

代碼:

import pandas as pd
import numpy as np

df = pd.read_csv('D:\All_Kinds_Stock_Data\windpy_filter_after\SH600036.csv')
df[df < 0] = np.nan  # 對過濾出來的對象進行賦值替換
df

此時,所有“負值”已被替換為 NaN

如果你想把替換后的DateFrame保存為新的csv文件的話,只需要如下操作:

df = pd.read_csv('D:\All_Kinds_Stock_Data\windpy_filter_after\SH600036.csv')
df[df < 0] = np.nan
df.to_csv('你的保存路徑', index=True)  # index = True/False 表示是否把索引index一起寫入csv文本。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM