【发布时间】:2020-04-30 13:49:49
【问题描述】:
我有一个使用以下代码从字典创建的 Pandas 数据框:
import pandas as pd
pd.set_option('max_colwidth', 150)
df = pd.DataFrame.from_dict(data, orient= 'index', columns = ['text'])
df
输出如下:
text
./form/2003Q4/0001041379_2003-12-15.html \n10-K\n1\ng86024e10vk.htm\nAFC ENTERPRISES\n\n\n\nAFC ENTERPRISES\n\n\n\nTable of Contents\n\n\n\n\n\n\n\nUNITED STATES SECURITIES AND EXCHANGE\n...
./form/2007Q2/0001303804_2007-04-17.html \n10-K\n1\na07-6053_210k.htm\nANNUAL REPORT PURSUANT TO SECTION 13 AND 15(D)\n\n\n\n\n\n\n \nUNITED\nSTATES\nSECURITIES AND EXCHANGE\nCOMMISSION...
./form/2007Q2/0001349848_2007-04-02.html \n10-K\n1\nff060310k.txt\n\n UNITED STATES\n SECURITIES AND EXCHANGE COMMISSION\n ...
./form/2014Q1/0001141807_2014-03-31.html \n10-K\n1\nf32414010k.htm\nFOR THE FISCAL YEAR ENDED DECEMBER 31, 2013\n\n\n\nf32414010k.htm\n\n\n\n\n\n\n\n\n\n\nUNITED STATES\nSECURITIES AND EX...
./form/2007Q2/0001341853_2007-04-02.html \n10-K\n1\na07-9697_110k.htm\n10-K\n\n\n\n\n\n\n \n \nUNITED STATES\nSECURITIES AND EXCHANGE COMMISSION\nWashington, D.C. 20549\n \nFORM 10-K\n ...
我需要将第一列(索引)拆分为三个单独的列,Year & Qtr、CIK、Filing Data。因此,第一行中这些列中的值将是:2003Q4、0001041379、2003-12-15。
我认为,如果这是在适当的列中,我可以使用类似于此处找到的示例 #2 的代码来执行此操作:
https://www.geeksforgeeks.org/python-pandas-split-strings-into-two-list-columns-using-str-split/
但是,我被我需要拆分的索引而不是命名列这一事实所困扰。
有没有办法分离索引或者我需要以某种方式将它保存为另一列,这可能吗?
如果有任何帮助,我将不胜感激。我是新手,所以我并不总是理解更困难的解决方案。提前致谢。
【问题讨论】:
-
使用 df['Data'] = df.index 然后重置索引。然后你只需要对每个分隔符上的数据使用 str.split 就可以得到你需要的数据。
-
@EdekiOkoh 谢谢你的回答。如此简单的答案,但我在其他任何地方都找不到!我可以相信你的答案吗?
-
Series 可用的许多方法也可用于 pandas 索引对象:
df.index.str.extract(r'.\/form\/(.*)\/(.*)_(.*).html') -
不需要。很高兴我能帮上忙