刪除有多行字串的json檔案中的離群值
def
processhold
(eachsubject,directory,newfile)
: filename =
'cmudatacol/hold/subject.json'
.format
(eachsubject)
# 原檔案
with
open
(filename,
'r')
as f:
for jsonstr in f.readlines():
# 按行讀取原檔案
# 這裡的情況是每一行為一類數值,該行內的資料相互比較找出是否有離群值
# 若存在離群值,則刪除該行資料
data = json.loads(jsonstr)
#計算四分位點
a = numpy.array(data)
q1 = numpy.percentile(a,
25)
q3 = numpy.percentile(a,
75)
iqr = q3 - q1
# 找出異常值
i =0for item in
zip(data)
:# 在正常值範圍內時 i+1
if item <= q3 +
(1.5
*iqr)
and item >= q1 -
(1.5
*iqr)
:
i = i +
1if i ==10:
# 這裡是因為我的json檔案中每行data有10個元素(如果有更好的方法,請教我一下,謝謝您!)
holdtime = data
with
open
(newfile,
'a')
as f:
# 將非離群資料存入新檔案
json.dump(holdtime, f)
f.write(
'\n'
)
python刪除某一行
整理了網路上的一些方法,一般有兩種方法 第一種 是先把檔案讀入記憶體,在記憶體中修改後再寫入原始檔。例子 將內容包含 123 的所有行刪去 with open c users lai desktop 1.txt r as r lines r.readlines with open c users l...
python使用index引數設定每一行的索引名
和columns引數類似,python中的pandas為每一行也設定了索引名,在預設的環境下,索引是乙個從0開始的乙個rangeindex物件 object 我們可以在df資料初始化的時候,對index變數進行賦值從而實現修改index索引的任務。我們可以通過以下 來進行演示 import pand...
python矩陣運算,對矩陣每一行乘以不同的係數
比如先隨機建立乙個3x3的矩陣 假設要實現第一行乘以1,第二行乘以2,第三行乘以3實現過程如下 a np.array 1 2,3 先建立 1,2,3 陣列 f np.empty shape 0 len a 建立空矩陣m 0 利用矩陣索引取矩陣每一行元素,初值為0 for i in range len...