1
我有一個大的數據幀爲其中兩個列是:大熊貓:查詢一個數據幀 - 多個標準
- 一個問題碼(例如Q453)
- True或False來表示是否將問題被回答正確
我不知道所有可能的問題代碼,並且每個問題已被多次回答。喜歡的東西:
Q666真
Q463真
Q056真
Q666假
我想知道哪些問題是最簡單的,正是這問題有嘗試的比例最高糾正答案。 使用熊貓達到此目的的步驟是什麼?
我有一個大的數據幀爲其中兩個列是:大熊貓:查詢一個數據幀 - 多個標準
我不知道所有可能的問題代碼,並且每個問題已被多次回答。喜歡的東西:
Q666真
Q463真
Q056真
Q666假
我想知道哪些問題是最簡單的,正是這問題有嘗試的比例最高糾正答案。 使用熊貓達到此目的的步驟是什麼?
我剛剛從你的文章中提取了一些數據。這是你在找什麼?
我製作了真/假指標小寫字符串;不確定它們存儲在您的文件中。如果您使用python2,我相信您可以將from io import StringIO
更改爲from StringIO import StringIO
。
In [105]: import pandas as pd
...: from io import StringIO
...:
...: data = """Q666 True
...:
...: Q463 True
...:
...: Q056 True
...:
...: Q666 False
...: Q666 True
...:
...:
...: Q463 True
...:
...: Q056 True
...: Q666 False
...: Q463 False
...: Q666 False"""
...:
In [106]: df = pd.read_csv(StringIO(data), sep=" ", header=None)
In [107]: df.columns = [['question', 'answer']]
In [108]: df['answer'] = df['answer'].astype("str").apply(lambda x: x.lower())
In [109]: df
Out[109]:
question answer
0 Q666 true
1 Q463 true
2 Q056 true
3 Q666 false
4 Q666 true
5 Q463 true
6 Q056 true
7 Q666 false
8 Q463 false
9 Q666 false
指定一個恆定值,以數據幀,所以我們可以指望我們GROUPBY條件,然後將多指標回到我們需要它。
In [110]: piv = (df
...: .assign(val = 1)
...: .groupby(["question", "answer"])
...: .count()
...: .unstack()['val'])
離這裏很容易...
In [111]: piv['ratio'] = piv['true']/piv.sum(axis=1)
In [112]: piv.sort_values("ratio")
Out[112]:
answer false true ratio
question
Q666 3.0 2.0 0.400000
Q463 1.0 2.0 0.666667
Q056 NaN 2.0 1.000000
非常感謝您的回答。我是熊貓的新手,所以我必須學習groupby和unstack函數,但我想我理解並能夠使用你的方法來找到我之後的答案。乾杯兄弟! –
當然,我很樂意幫助! –