我的数据:
import pandas as pd
data = {'game': [1, 2], 'moves': [['D4', 'd5', 'NF4'],['d5', 'c6', 'Be4']]}
df = pd.DataFrame(data)
| game | moves |
|------|--------------|
| 1 |[D4, d5, NF4] |
| 2 |[d5, c6, Be4] |
对于每一行,我想提取“moves”列中列表前n个元素的大写字母数。到目前为止,我有以下解决方案:
count = []
for row in df.moves:
count.append(sum(1 for elem in listToString(row[0:10]) if elem.isupper()))
这是可行的,但我更喜欢不涉及串联列表的字符串元素的解决方案。有这样的事吗
输出:
[3, 1]
试试这个:
输出:
使用列表理解,可以执行以下操作:
或者,如果需要计算所有大写字母:
再好一点:
相关问题 更多 >
编程相关推荐