0
私は果物のパンダのデータフレームを持っている::大文字と小文字を区別パンダシリーズマッチングとクリーンパンダシリーズ・ロジック
df = pd.read_csv(newfile, header=None)
df
0 1 2 3 4 5 6 7
0 Apple Bananas Fig Elderberry Cherry Honeydew NaN NaN
1 Bananas Cherry Dragon Elderberry NaN NaN NaN NaN
2 Cherry Grape NaN NaN NaN NaN NaN NaN
3 Dragon NaN Apple Bananas Cherry Elderberry NaN NaN
4 Elderberry Apple Bananas Fig Grape NaN NaN NaN
5 Fig Cherry Honeydew Apple NaN NaN NaN NaN
6 Grape NaN NaN NaN NaN NaN NaN NaN
7 Honeydew Grape Fig Elderberry Dragon Cherry Bananas Apple
そして、私は、例えば、「フルーツのペアリング」を見つけようとしています最初の行では、AppleとFigはペア、6行目はAppleとAppleです。 Apple-ElderberryとElderberry-Appleの場合は同様ですが、AppleとBananasはそうではありません(Bananasから始まる行にはApplesがありません)。
私は、次のコードの作業を持って、それがこれを行い::
fruits = df[0]
stock = df.drop(0, axis=1)
for i in range(len(fruits)):
string1 = str(fruits[i])
full_line = (stock.iloc[i])
line = np.array(full_line.dropna(axis=0))
if len(line) > 0 :
for j in range(len(stock)):
iind = (fruits[fruits == line[j]].index[0])
this_line = stock.iloc[iind]
logic_out = this_line.str.match(string1)
print(logic_out)
しかし! (1)Pandas Seriesは大文字と小文字が区別され、(2)ブール値の出力はTrue、Falses、NaNが混在しているため、果物== line [j]で壊れます。理想的には、私はTruesを数えたいだけです。すべてのヘルプv。多くの感謝!
こんにちは@piRSquaredを放送numpyの、これは偉大に見えるが、KeyError例外を持つ最初の行にクラッシュした:「0」のメッセージ。 ...上記のコードを編集して、私がdfでどのように読んでいるのか、そして.cvsは以下の通りです。 – npross
アップル、バナナ、図、エルダーベリー、チェリー、ハニーデュー,, バナナ、チェリー、ドラゴン、エルダーベリー,,,, チェリー、ブドウ,,,,,, ドラゴン,,アップル,,バナナ、チェリー、エルダーベリー、 Elderberry、Apple、Bananas、Fig、Grape ,,, Figue、Cherry、Honeydew、Apple ,,,, グレープ,,,,,,, 蜜柑、ブドウ、イチゴ、ドラゴン、チェリー、バナナ、アップル – npross
最初の列の実際の名前は何ですか。私はそれがあなたが提供したデータフレームをコピーして通過するときに解析されるため、それが '' 0 ''であると仮定します。私のアップデートをもう一度試してみてください。 – piRSquared