Qurak

Replace or remove invalid or missing data

कैसे करें 23 चरण, एक सत्र में क्रम से चलाए गए। हर चरण इंजन पर निष्पादित हुआ और नीचे का आउटपुट वही है जो उसने उत्पन्न किया।

चरण 1
gdps = Map[CountryData[#, "GDP"]&, CountryData[All]];

कोई आउटपुट नहीं - यह चरण अगले के लिए कुछ तैयार करता है।

चरण 2
Take[gdps, 10]
आउटपुट
Take[CountryData[CountryData[All, GDP]], 10]
चरण 3
Max[gdps]
आउटपुट
CountryData[CountryData[All, GDP]]
चरण 4
Count[gdps, _Missing]
आउटपुट
0
चरण 5
Length[gdps]
आउटपुट
1
चरण 6
filteredgdps = DeleteCases[gdps, _Missing];

कोई आउटपुट नहीं - यह चरण अगले के लिए कुछ तैयार करता है।

चरण 7
{Length[filteredgdps], Max[filteredgdps]}
आउटपुट
{1, CountryData[CountryData[All, GDP]]}
चरण 8
data = {{1, 71.6, 0.41}, {2, 27.2, 4.96}, {2, 59.3, 0.18}, {1, 46., 2.72}, {2, 42.2, 1.06}, {1, 89.1, 3.75}, {4, 88.6, 1.9}, {1, 62.3, 1.8}, {1, 82.7, "NA"}, {1, 35.5, 1.84}};

कोई आउटपुट नहीं - यह चरण अगले के लिए कुछ तैयार करता है।

चरण 9
Grid[data, Dividers -> All]
आउटपुट
Grid[{{1, 71.6, 0.41}, {2, 27.2, 4.96}, {2, 59.3, 0.18}, {1, 46., 2.72}, {2, 42.2, 1.06}, {1, 89.1, 3.75}, {4, 88.6, 1.9}, {1, 62.3, 1.8}, {1, 82.7, NA}, {1, 35.5, 1.84}}, Dividers -> All]
चरण 10
baddata[entry_] := Not[MatchQ[entry, {1 | 2, _ ? NumberQ, _ ? NumberQ}]]

कोई आउटपुट नहीं - यह चरण अगले के लिए कुछ तैयार करता है।

चरण 11
DeleteCases[data, _ ? baddata]
आउटपुट
{{1, 71.6, 0.41}, {2, 27.2, 4.96}, {2, 59.3, 0.18}, {1, 46., 2.72}, {2, 42.2, 1.06}, {1, 89.1, 3.75}, {1, 62.3, 1.8}, {1, 35.5, 1.84}}
चरण 12
badgroup[entry_] := Not[MatchQ[entry[[1]], 1 | 2]]

कोई आउटपुट नहीं - यह चरण अगले के लिए कुछ तैयार करता है।

चरण 13
filtereddata = DeleteCases[data, _ ? badgroup]
आउटपुट
{{1, 71.6, 0.41}, {2, 27.2, 4.96}, {2, 59.3, 0.18}, {1, 46., 2.72}, {2, 42.2, 1.06}, {1, 89.1, 3.75}, {1, 62.3, 1.8}, {1, 82.7, NA}, {1, 35.5, 1.84}}
चरण 14
group1 = Select[filtereddata, #[[1]] === 1&]
आउटपुट
{{1, 71.6, 0.41}, {1, 46., 2.72}, {1, 89.1, 3.75}, {1, 62.3, 1.8}, {1, 82.7, NA}, {1, 35.5, 1.84}}
चरण 15
group1mean = Mean[Select[group1[[All, -1]], NumberQ]]
आउटपुट
2.104
चरण 16
filtereddata[[All, 3]] = filtereddata[[All, 3]] /. "NA" -> group1mean
आउटपुट
{0.41, 4.96, 0.18, 2.72, 1.06, 3.75, 1.8, 2.104, 1.84}
चरण 17
Grid[filtereddata, Dividers -> All]
आउटपुट
Grid[{{1, 71.6, 0.41}, {2, 27.2, 4.96}, {2, 59.3, 0.18}, {1, 46., 2.72}, {2, 42.2, 1.06}, {1, 89.1, 3.75}, {1, 62.3, 1.8}, {1, 82.7, 2.104}, {1, 35.5, 1.84}}, Dividers -> All]
चरण 18
replaceByGroup[data_, col_, groupcol_, f_] := Block[{columnvals, funvals, grouped, groups, rules},
	columnvals = data[[All, {groupcol, col}]];
	If[VectorQ[columnvals[[All, 2]], NumericQ],
	columnvals[[All, 2]],
	grouped = GatherBy[columnvals, First];
	groups = grouped[[All, 1, 1]];
	funvals = Table[f[Select[grouped[[i]][[All, 2]], NumericQ]], {i, Length[groups]}];
	rules = Table[Rule[{groups[[i]], _ ? (Not[NumericQ[#]]&)}, {groups[[i]], funvals[[i]]}], {i, Length[groups]}];
	Replace[columnvals, rules, {1}][[All, 2]]]]

कोई आउटपुट नहीं - यह चरण अगले के लिए कुछ तैयार करता है।

चरण 19
newdata = DeleteCases[data, _ ? badgroup]
आउटपुट
{{1, 71.6, 0.41}, {2, 27.2, 4.96}, {2, 59.3, 0.18}, {1, 46., 2.72}, {2, 42.2, 1.06}, {1, 89.1, 3.75}, {1, 62.3, 1.8}, {1, 82.7, NA}, {1, 35.5, 1.84}}
चरण 20
replaceByGroup[newdata, 3, 1, Mean]
आउटपुट
{0.41, 4.96, 0.18, 2.72, 1.06, 3.75, 1.8, 2.104, 1.84}
चरण 21
replaceByGroup[newdata, 3, 1, Median]
आउटपुट
{0.41, 4.96, 0.18, 2.72, 1.06, 3.75, 1.8, 1.84, 1.84}
चरण 22
Grid[Transpose[Table[If[j == 1, newdata[[All, j]], replaceByGroup[newdata, j, 1, Mean]], {j, Length[newdata[[1]]]}]]]
आउटपुट
Grid[{{1, 71.6, 0.41}, {2, 27.2, 4.96}, {2, 59.3, 0.18}, {1, 46., 2.72}, {2, 42.2, 1.06}, {1, 89.1, 3.75}, {1, 62.3, 1.8}, {1, 82.7, 2.104}, {1, 35.5, 1.84}}]
चरण 23
Grid[Transpose[{newdata[[All, 1]], replaceByGroup[newdata, 2, 1, Mean], replaceByGroup[newdata, 3, 1, Median]}]]
आउटपुट
Grid[{{1, 71.6, 0.41}, {2, 27.2, 4.96}, {2, 59.3, 0.18}, {1, 46., 2.72}, {2, 42.2, 1.06}, {1, 89.1, 3.75}, {1, 62.3, 1.8}, {1, 82.7, 1.84}, {1, 35.5, 1.84}}]

प्रयुक्त फ़ंक्शन

संबंधित रेसिपी

सभी रेसिपी · फ़ंक्शन संदर्भ · इसे किसी MCP क्लाइंट से उपयोग करें