使用split函数通过python中的分隔符提取数据帧中的值,但函数逐行提供行,而不是作为数据帧



我已经将一个xml文件转换为csv,并将此结果作为数据帧列"数据[列]";。

`0 Jan:2018000/XXX|Dec:2017000/XXX| Nov:2017000…

2018年4月1日/XXX | 2018年3月/STD | 2018年2月…

2019000/XXX|三月:2019000/XXX|二月:2019000…

2019000/XXX|

2018000/XXX|Nov:2018000/XXX| Oct:2018000…

2月5日:2019000/XXX | 1月:2019000-XXXX | 12月:2018000…

2015年5月6日,XXX/XXX | 2015年4月,XXX/XXX| 2015年3月,XXX。`

我希望这个数据帧列通过将逗号后的每个第一个值拆分为"|&";。

示例:

000000000….

000000000…

000000000…

000…

000000000…

XXX、 XXX,XXX。。。

并将其存储在数据帧中。

我用过这个功能:

def my_split(字符串(:

**for x in new.str.split("|"):**
**for y in x:**
**print(y.split(",")[-1][0:3])**

新建.apply(my_split(

但是我得到了每一行的值。

000

000

000

000

000

000

000

s = """0 Jan:2018,000/XXX|Dec:2017,000/XXX|Nov:2017,000...
1 Apr:2018,000/XXX|Mar:2018,000/STD|Feb:2018,000...
2 Apr:2019,000/XXX|Mar:2019,000/XXX|Feb:2019,000...
3 Jan:2019,000/XXX|
4 Dec:2018,000/XXX|Nov:2018,000/XXX|Oct:2018,000...
5 Feb:2019,000/XXX|Jan:2019,000/XXX|Dec:2018,000...
6 May:2015,XXX/XXX|Apr:2015,XXX/XXX|Mar:2015,XXX..."""
df = pd.DataFrame([x.split(';') for x in s.split('n')], columns=['col'])
def custom_strip_fnc(m):
ar = [k.split(',')[1][0:3] for k in m.split('|') if (',') in k]
return ar# %%
df['splitted'] = df['col'].apply(custom_strip_fnc)
df
col  splitted
0   0 Jan:2018,000/XXX|Dec:2017,000/XXX|Nov:2017,0...   [000, 000, 000]
1   1 Apr:2018,000/XXX|Mar:2018,000/STD|Feb:2018,0...   [000, 000, 000]
2   2 Apr:2019,000/XXX|Mar:2019,000/XXX|Feb:2019,0...   [000, 000, 000]
3   3 Jan:2019,000/XXX| [000]
4   4 Dec:2018,000/XXX|Nov:2018,000/XXX|Oct:2018,0...   [000, 000, 000]
5   5 Feb:2019,000/XXX|Jan:2019,000/XXX|Dec:2018,0...   [000, 000, 000]
6   6 May:2015,XXX/XXX|Apr:2015,XXX/XXX|Mar:2015,X...   [XXX, XXX, XXX]

最新更新