考虑以下熊猫数据框
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- start form -->
<form action="index.php" method="POST" id="myForm">
<div class="well">
<div class="form-group">
<label for="userName">Client's Name or Animal </label>
<input type="text" class="form-control" name="userName" id="userName" placeholder="Example: John Doe">
</div>
<div class="form-group">
<label for="phrase">Select Phrase or Enter Custom Text Below</label>
<select class="form-control" id="phrase" name="phrase">
<option>Please Select</option>
<option>Custom Phrase [NAME HERE] 1</option>
<option>Custom Phrase [NAME HERE] 2</option>
<option>Custom Phrase [NAME HERE] 3</option>
<option>Custom Phrase [NAME HERE] 4</option>
<option>Custom Phrase [NAME HERE] 5</option>
</select>
</div>
<div class="form-group">
<label for="line">Custom Word(s), Sentence or Paragraph</label>
<textarea rows="4" class="form-control" id="line" name="line" placeholder="Example: I MISS YOU"></textarea>
<span class="help-block emphasized">500 Words MAX</span>
</div>
如何将其转换为以下熊猫数据框
In [1]: d = {'ID': [1, 1, 1, 2, 3, 4, 4], 'PROPERTY':['A','B','C','A','D','A','B']}
In [2]: test_df = pd.DataFrame(data=d)
In [3]: test_df
Out[3]:
ID PROPERTY
0 1 A
1 1 B
2 1 C
3 2 A
4 3 D
5 4 A
6 4 B
这是针对可变数量的可能功能,而不是本例所示的4个。另外,请注意每个ID现在仅需要在ID列中出现一次。
由于我将处理大量数据,因此我试图有效地实现这一点。如果可能的话,最好避免在这里循环。 感谢您的帮助!
答案 0 :(得分:2)
pd.crosstab(df.ID, df.PROPERTY)
A B C D
ID
1 1 1 1 0
2 1 0 0 0
3 0 0 0 1
4 1 1 0 0