我有一个string喜欢下面的python
testing_abc
Run Code Online (Sandbox Code Playgroud)
我想根据元素分割字符串_并提取2元素
我已经做了如下
split_string = string.split('_')[1]
Run Code Online (Sandbox Code Playgroud)
我得到了预期的正确输出
abc
Run Code Online (Sandbox Code Playgroud)
现在我希望它适用于以下字符串
1) xyz
Run Code Online (Sandbox Code Playgroud)
当我使用
split_string = string.split('_')[1]
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
list index out of range
Run Code Online (Sandbox Code Playgroud)
我想要的预期输出是xyz
2) testing_abc_bbc
Run Code Online (Sandbox Code Playgroud)
当我使用
split_string = string.split('_')[1]
Run Code Online (Sandbox Code Playgroud)
我得到abc的输出
我想要的预期输出是abc_bbc
基本上我想要的是
1) If string contains `_` then print everything after the first `_` as variable
2) If string doesn't contain `_` then print the string as variable
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现我想要的
我在 Linux shell 中有一个字符串。该字符串中包含下划线。
我想从字符串中提取一个子字符串。
我想提取第三次出现下划线之后的子字符串(从字符串末尾算起)。
file_name='email_Tracking_export_history_2018_08_15'
string_name="${file_name#*_*_*_}"
file_name2='email_Tracking_export_2018_08_15'
string_name2="${file_name2#*_*_*_}"
echo "$string_name"
echo "$string_name2"
Run Code Online (Sandbox Code Playgroud)
结果
history_2018_08_15
2018_08_15
Run Code Online (Sandbox Code Playgroud)
如您所见,string_name="${file_name#*_*_*_}"无法正常工作。
期望的结果:
2018_08_15
2018_08_15
Run Code Online (Sandbox Code Playgroud)
我怎样才能达到我想要的结果?
我在 Pyspark 中有一个如下所示的数据框
df = spark.createDataFrame([(2,'john',1,1),
(2,'john',1,2),
(3,'pete',8,3),
(3,'pete',8,4),
(5,'steve',9,5)],
['id','/na/me','val/ue', 'rank/'])
df.show()
+---+------+------+-----+
| id|/na/me|val/ue|rank/|
+---+------+------+-----+
| 2| john| 1| 1|
| 2| john| 1| 2|
| 3| pete| 8| 3|
| 3| pete| 8| 4|
| 5| steve| 9| 5|
+---+------+------+-----+
Run Code Online (Sandbox Code Playgroud)
/现在,在这个数据框中,我想替换scrore 下的列名称_。但是,如果/出现在列名称的开头或结尾,则删除 ,/但不要替换为_。
我已经做了如下
for name in df.schema.names:
df = df.withColumnRenamed(name, name.replace('/', '_'))
>>> df
DataFrame[id: bigint, _na_me: string, val_ue: bigint, rank_: bigint]
>>>df.show()
+---+------+------+-----+
| id|_na_me|val_ue|rank_|
+---+------+------+-----+ …Run Code Online (Sandbox Code Playgroud)