我有一个相当大的数据框,包含“已知”和“未知”的数据。我正在尝试创建一个for循环(或另一个解决方案),它遍历特定的dataframe列,并在每次找到“已知”值时填充一个值。一旦找到该值,循环就必须填充该值,直到找到下一个已知值。在这个新的已知值被发现后,循环将填充这个新的已知值等。我不能删除未知数据
我目前拥有的for循环能够将已知值附加到其所在的行中,但我不知道如何填充该值,直到下一个已知值并重复此步骤
import pandas as pd
example = [{'A':"Value_01"}, {'A':"unknown_x"}, {'A':"Value_02"}, {'A':"random_y"}, {'A':"dontknow_1"}, {'A':"random_x"}, {'A':"Value_03"}, {'A':"dontknow_2"}, {'A':"dontknow_3"}]
df = pd.DataFrame(example)
values = []
for row in df['A']:
if "Value_01" in row:
values.append("Value_01")
elif "Value_02" in row:
values.append("Value_02")
elif "Value_03" in row:
values.append("Value_03")
示例和所需输出:
df
Input Desired
------- --------
Value_01 Value_01
unknown Value_01
Value_02 Value_02
unknown Value_02
unknown Value_02
unknown Value_02
Value_03 Value_03
unknown Value_03
unknown Value_03
因为我在不同的软件程序中使用这段python代码,所以我只能使用本机python和以下软件包:matplotlib、numpy、pandas、sciket learn、scipy、seaborn和statsmodels。任何帮助都将不胜感激
我认为你不需要使用循环。您可以使用合并熊猫的方法。在你提到的情况下,你可以做到以下几点
可以使用^{} +^{} 将未知值填充为^{} :
输出:
您还可以使用DataFrame.mask:
如果你有一个已知值的列表您可以使用^{} 作为@splash58的建议:
相关问题 更多 >
编程相关推荐