私はcsvファイルを開いてクリーンアップして得たデータフレームを持っています。 CSVファイルは次のようになります。パンダの述語に基づいてデータフレームの列を結合する
"1. Do some research on al-Khorezmi (also al-Khwarizmi), the man from whose name the word ""algorithm"" is derived. In particular, you should learn what the origins of the words ""algorithm"" and ""algebra"" have in common. ",,Understand,Procedural,Understand,Factual,Understand,
3. Write down driving directions for going from your school to your home with the precision required from an algorithm's description. ,,Apply,,Apply,Factual,Remember,
Write down a recipe for cooking your favorite dish with the precision required by an algorithm.,Factual,Apply,,,Factual,Remember,
"Design an algorithm to find all the common elements in two sorted lists of numbers. For example, for the lists 2, 5, 5, 5 and 2, 2, 3, 5, 5, 7, the output should be 2, 5, 5. What is the maximum number of comparisons your algorithm makes if the lengths of the two given lists are m and n, respectively?",Procedural,Create,,Apply,,,
"a. Find gcd(31415, 14142) by applying Euclid's algorithm.",Procedural,Apply,,Apply,,,
このコードでそれをロード:
Questions A1 \
5 1. Do some research on al-Khorezmi (also al-Kh... NaN
6 3. Write down driving directions for going fr... NaN
7 Write down a recipe for cooking your favorite ... Factual
8 Design an algorithm to find all the common ele... Procedural
9 a. Find gcd(31415, 14142) by applying Euclid'... Procedural
A2 B1 B2 C1 \
5 Understand Procedural Understand Factual
6 Apply NaN Apply Factual
7 Apply NaN NaN Factual
8 Create NaN Apply NaN
9 Apply NaN Apply NaN
C2
5 Understand
6 Remember
7 Remember
8 NaN
9 NaN
列が['Questions', 'A1', 'A2', 'B1', 'B2', 'C1', 'C2']
を以下のとおりです。
df = pd.read_csv('ADA.csv', names=['Questions', 'A1', 'A2', 'B1', 'B2', 'C1','C2'])
これは私がこれまで持っているものです。これも同じになります
Label 1 = A1 if A1 has a value else B1 if B1 has a value else C1
:私は何をする必要があるか
今は、この述語に基づいて別のカラムLabel 2
に一緒に1列Label 1
と列['A2', 'B2', 'C2']
に一緒に列['A1', 'B1', 'C1']
を組み合わせることですラベル2:
Label 2 = A2 if A2 has a value else B2 if B2 has a value else C2
与えられた入力の場合は、私はこのように見える2つの列を望みます
df['Label 1'] = df['A1'] if df['A1'] else df['B1'] if df['B1'] else df['C1']
しかし、それは、このエラーがスローされます:
Label 1 Label 2
Procedural Understand
Factual Apply
Factual Apply
Procedural Create
Procedural Apply
は、これは私が試したものです
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
私はちょうど誰かが正しい方向に私をプッシュすることができた場合は、それが十分だろう。ありがとう。
IIUC 'DF [ 'ラベル1'] =のDF [ 'A1'] [ 'A1'] DF場合をにnotnull()他のすべての()B1 '[DF '] if df [' B1 ']。notnull()。all()else df [' C1 '] '。 – shivsn
コード、サンプルcsv、および出力を編集しました。 –
@shivsnありがとう!それは働いています。その答えを公表してください。私は同意します。 –