パンダのDataframeの列の部分を比較することは可能ですか?私は以下のデータフレームの例を持っています。そこには4つの言語が保存されています(en、de、nl、ua)、各言語は同じキー/同じ量のキーを持っていますが、私は静的な列を持っているので、完了するために値は常に同じままです)。パンダのデータフレームの集約部分を比較するには?
│ Lang │ Static │ # Missing │ Keys │
│ de │ x │ 0 │ │
│ nl │ x │ 1 │ key_3 │
│ ua │ x │ 2 │ key_2, key_3 │
:私は英語の1(「en」とここ)と比較して、言語ごとに不足しているので、このようなものは、所望の出力がどうなるかのキーとどのように多くのを確認する必要があり
static │ langs │ keys │ values
x │ en │ key_1 │ value_en_1
x │ en │ key_2 │ value_en_2
x │ en │ key_3 │ value_en_3
x │ de │ key_1 │ value_de_1
x │ de │ key_2 │ value_de_2
x │ de │ key_3 │ value_de_3
x │ nl │ key_1 │ value_nl_1
x │ nl │ key_2 │ value_nl_2
x │ ua │ key_1 │ value_ua_1
keys values
count count
static language
x de 3 3
en 3 3
nl 2 2
ua 1 1
01:これはdf_summの出力がある
import pandas as pd
# this is read from a csv, but I'll leave it as list of lists for simplicity
rows = [
['x', 'en', 'key_1', 'value_en_1'],
['x', 'en', 'key_2', 'value_en_2'],
['x', 'en', 'key_3', 'value_en_3'],
['x', 'de', 'key_1', 'value_de_1'],
['x', 'de', 'key_2', 'value_de_2'],
['x', 'de', 'key_3', 'value_de_3'],
['x', 'nl', 'key_1', 'value_nl_1'],
['x', 'nl', 'key_2', 'value_nl_2'],
['x', 'ua', 'key_1', 'value_en_1']
]
# create DataFrame out of rows of data
df = pd.DataFrame(rows, columns=["static", "language", "keys", "values"])
# print out DataFrame
print("Dataframe: ", df)
# first group by language and the static column
df_grp = df.groupby(["static", "language"])
# try to sum the number of keys and values per each language
df_summ = df_grp.agg(["count"])
# print out the sums
print()
print(df_summ)
# how to compare?
# how to get the keys?
:これは私の現在の進行状況です
この時点ではどのように進めるのか分かりません。私はどんなヘルプ/ヒントにも感謝しています。
P.S.これはPython 3.5にあります。
、ありがとうございました。 2番目の解決策はそれより複雑であるようですが、最初のものよりも好む理由がありますか? –
私は大規模なデータでは、いくつかの欠落しているカテゴリだけで速くなると思います。 – jezrael
ありがとう、別の質問です。他の言語と英語の言語との比較はどこですか?あなたの解決策では、ドイツ語に英語よりも多くの鍵があるとすれば、英語の鍵は1つの鍵がないと表示されるでしょうか? –