从具有特定结构的文本文件创建 Pandas DataFrame 需要策略性的数据操作。让我们深入研究这个问题并探索一种解决方案,将提供的文本转换为所需的 DataFrame。
文本文件遵循分层结构,其中:
首先,读取文本文件并使用 read_csv() 创建一个 DataFrame。由于没有特定的分隔符,请指定数据中不存在的自定义分隔符,例如分号:
<code class="python">df = pd.read_csv('filename.txt', sep=";", names=['Region Name'])</code>
使用 str.extract() 方法和正则表达式识别包含州名称的行,以捕获最多“[edit]”的州名称。使用以下值创建一个名为“State”的新列:
<code class="python">df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())</code>
从“区域名称”列中删除括号及其中包含的任何字符:
<code class="python">df['Region Name'] = df['Region Name'].str.replace(r' \(.+$', '')</code>
删除“区域名称”列中出现“[edit]”的行。使用 str.contains() 创建掩码:
<code class="python">df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)</code>
此时,您已根据需要获得了包含“州”和“地区名称”列的 DataFrame。
<code class="python">print(df)</code>
如果您更喜欢在“区域名称”列中包含括号内的文本,这里是修改后的解决方案:
<code class="python">df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill()) df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True) print(df)</code>
这将生成一个包含“州”和“区域名称”列的 DataFrame,其中区域名称包括括号内的文本。
以上是如何从具有包含州和地区模式的特定结构的文本文件创建 Pandas DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!