我正在使用以下数据框:
path
0 dir_1
1 dir_1/dir_2
2 dir_1/dir_2/dir_3
3 dir_1/dir_2/dir_4
预期的数据框
path is_last_dir
0 dir_1 0
1 dir_1/dir_2 0
2 dir_1/dir_2/dir_3 1
3 dir_1/dir_2/dir_4 1
该path
列由 type 组成str
,我想知道如何在不使用os
.
请指教。
您可以使用下面提到的代码复制数据框:
data_list = ['dir_1', 'dir_1/dir_2', 'dir_1/dir_2/dir_3', 'dir_1/dir_2/dir_4']
path_df = pd.DataFrame(data_list,columns =['path'])
path_df.head()
该解决方案将列表中的每个项目与其他所有项目进行比较,因此这基本上是一个 O(n²) 解决方案。
import pandas as pd
data_list = [('dir_1', -1), ('dir_1/dir_2', -1), ('dir_1/dir_2/dir_3', -1), ('dir_1/dir_2/dir_4', -1)]
result = []
for entry in data_list:
dir = entry[0]
for otherentry in data_list:
otherdir = otherentry[0]
if otherdir.startswith(dir + "/"):
result.append((dir, 0))
break
else:
result.append((dir, 1))
path_df = pd.DataFrame(result, columns=['path', 'is_last_dir'])
print(path_df.head())
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句