Python 3.x 如何从每个列都由正则表达式创建的列表中创建数据帧
我有这样一份清单:Python 3.x 如何从每个列都由正则表达式创建的列表中创建数据帧,python-3.x,regex,dataframe,Python 3.x,Regex,Dataframe,我有这样一份清单: lst = ['2021_01_21__11_10_54_1__13928_snapshot.jpg', '2021_01_21__12_27_44_1__13934_snapshot.jpg', '2021_01_21__11_11_08_2__13928_snapshot.jpg', '2021_01_21__12_27_56_2__13934_snapshot.jpg', '2021_01_21__11_11_19
lst = ['2021_01_21__11_10_54_1__13928_snapshot.jpg',
'2021_01_21__12_27_44_1__13934_snapshot.jpg',
'2021_01_21__11_11_08_2__13928_snapshot.jpg',
'2021_01_21__12_27_56_2__13934_snapshot.jpg',
'2021_01_21__11_11_19_3__13928_snapshot.jpg',
'2021_01_21__12_28_08_3__13934_snapshot.jpg']
我想创建一个数据框,以便每个列都由以下内容表示:
def by_number(path):
base_name = os.path.basename(path)
return re.findall('[\_]{2}(\d{5})',lst)
def by_index(path):
base_name = os.path.basename(path)
return re.findall('\_(\d)[\_]{2}',lst)
这些行将由以下内容表示:
def by_number(path):
base_name = os.path.basename(path)
return re.findall('[\_]{2}(\d{5})',lst)
def by_index(path):
base_name = os.path.basename(path)
return re.findall('\_(\d)[\_]{2}',lst)
所以最终我会得到一个数据帧,看起来像这样:
name\u list=['2021\u 01\u 21\u 11\u 10\u 54\u 1\u 13928\u snapshot.jpg',
“2021_01_21_12_27_44_1_13934_snapshot.jpg”,
“2021_01_21_11_11_08_2_13928_snapshot.jpg”,
“2021_01_21_12_27_56_2_13934_snapshot.jpg”,
“2021_01_21_11_11_19_3_13928_snapshot.jpg”,
“2021\u 01\u 21\u 12\u 28\u 08\u 3\u 13934\u snapshot.jpg”]
进口稀土
作为pd进口熊猫
df=pd.DataFrame([[0]],columns=['count'])#初始化DataFrame
对于名称列表中的名称:
count=re.search('\\\(\d)[\\\]{2}',name.group(1)
col=re.search('[\\]{2}(\d{5}),name).group(1)
如果((df['count']==count)).any():
df.loc[df['count']==计数,列]=名称
其他:
new_row=pd.DataFrame([[count,name]],columns=['count',col])
df=df.append(新行)
df.set_索引('count',in place=True)
打印(df)
你能举个例子吗。它不清楚是的,在你询问时编辑希望这能解决你的问题。我花了30分钟来解决它。您可以在完成后删除第一行,使用
df=df.iloc[1://code>