在对大数据集的研究中,我创建了一个包含零 (0) 和一 (1) 的数据集。但是,当值 0 在各个方向被 1 包围时,它应该得到值 2。
我在使用 Python 3.7 的 Spyder 环境中工作。没什么了不起的。我只是无法弄清楚代码。
import pandas as pd
df = pd.read_excel (r'D:\AW 1920 VU\Research Project\Nieuwe map\Proberen.xlsx') #just an example excel sheet
print (df)
df2= df.replace(range(1,20) , 1)
print (df2)'''
df =
[{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 1 0 0 0 0 0 0 0}
{0 0 0 1 11 2 1 1 0 0 0 0 0}
{0 0 0 7 13 1 0 0 0 0 0 0 0}
{0 0 0 2 2 7 0 2 1 0 0 0 0}
{0 0 0 3 5 8 8 2 1 0 0 0 0}
{0 0 0 1 6 7 0 0 1 1 0 0 0}
{0 0 0 1 1 0 0 0 2 0 0 0 0}
{0 0 0 1 1 1 1 0 3 4 0 0 0}
{0 0 0 0 0 1 1 1 2 0 0 0 0}
{0 0 0 0 0 0 1 1 1 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}]
df2=
[{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 1 0 0 0 0 0 0 0}
{0 0 0 1 1 1 1 1 0 0 0 0 0}
{0 0 0 1 1 1 0 0 0 0 0 0 0}
{0 0 0 1 1 1 0 1 1 0 0 0 0}
{0 0 0 1 1 1 1 1 1 0 0 0 0}
{0 0 0 1 1 1 0 0 1 1 0 0 0}
{0 0 0 1 1 0 0 0 1 0 0 0 0}
{0 0 0 1 1 1 1 0 1 1 0 0 0}
{0 0 0 0 0 1 1 1 1 0 0 0 0}
{0 0 0 0 0 0 1 1 1 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}]
到目前为止一切都很好。但是正如你所看到的,有一个值为 0 的点,被 1 包围。如何锁定/缓冲/突出显示该区域并为其赋予“特殊值”(2)。所以结果将是这样的:
df3=
[{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 1 0 0 0 0 0 0 0}
{0 0 0 1 1 1 1 1 0 0 0 0 0}
{0 0 0 1 1 1 0 0 0 0 0 0 0}
{0 0 0 1 1 1 0 1 1 0 0 0 0}
{0 0 0 1 1 1 1 1 1 0 0 0 0}
{0 0 0 1 1 1 2 2 1 1 0 0 0}
{0 0 0 1 1 2 2 2 1 0 0 0 0}
{0 0 0 1 1 1 1 2 1 1 0 0 0}
{0 0 0 0 0 1 1 1 1 0 0 0 0}
{0 0 0 0 0 0 1 1 1 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0 0 0 0 0 0}]
希望该表是可读的。期待回复。