我有一个类似下面的数据集
data = [("patient 1", 0.44), ("patient 2", 0.14), ("patient 3", 0.22)]
因此,我需要创建每个元组的第一个值的列表。这就是我要做的
df = pd.DataFrame(np.array(data))
values = df.iloc[:, 0].unique()
所以我得到一个预期的列表,如下所示
['patient 1', 'patient 2', 'patient 3']
但是有时我的数据集可能缺少一些值。所以也许像这样
data = [("patient 1", 0.44), ("patient 2", 0.14), ("patient 3",)]
如您所见,patient 3
的值为空或无。因此,当我再次运行上面的程序时,我没有得到每个元组的第一个值的列表,而是得到了原来的列表
[('patient 1', 0.44), ('patient 2', 0.14), ('patient 3',)]
我如何确保尽管数据不完整,但由于我只想要每个元组的第一个值,所以我得到了想要的列表?
注意:我知道我可以使用简单的python提取第一个值,但是由于数据集可能非常大,我想坚持使用Pandas
来获取结果。>
答案 0 :(得分:1)
您可以清除数据。这是一个如何做的例子:
data = [("patient 1", 0.44), ("patient 2", 0.14), ("patient 3",)]
# We check if there are two values in the tuple otherwise we discard it
cleaned_data = [(x[0], x[1]) for x in data if len(x)>1]
df = pd.DataFrame(np.array(cleaned_data ))
values = df.iloc[:, 0].unique()
输出:
array(['patient 1', 'patient 2'], dtype=object)
答案 1 :(得分:0)
我建议:
import time
from time import sleep
import sys
def printfast(str):
for letter in str:
sys.stdout.write(letter)
sys.stdout.flush()
time.sleep(0.04)
name = input("\nWhat is your name?\n\n")
printfast(f("You are the mighty hero {name}. In front of you, there is a grand palace, containing twisting marble spires and spiraling dungeons.\n")
希望这会有所帮助。