如果列名称包含句点,如何更改列名称?

发布于 2025-01-16 20:17:58 字数 941 浏览 1 评论 0原文

我正在尝试合并具有相同列但具有不同命名约定的文件。某些文件的列名称包含句点(“.”),而其他文件的列名称不包含句点。

有些文件如下所示:

First.NameLast.Name
Cell 1Cell 2
Cell 3Cell 4

而其他文件如下所示:

First NameLast Name
Cell 1Cell 2
Cell 3Cell 4

我只想更改列名称,如果列名称包含句点。我该怎么办?

这是我的代码片段

li = []
for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    if df.loc[:,df.columns.str.contains('.')].any() == True:
    df.rename(columns = {'First.Name':'First Name', 'Last.Name':'Last Name'})
    li.append(df)

The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

I am trying to merge files that have the same columns but have different naming conventions. Some files have column names that contain a period ('.'), while others have columns name that does not contain a period.

Some of the files look like this:

First.NameLast.Name
Cell 1Cell 2
Cell 3Cell 4

While others look like this:

First NameLast Name
Cell 1Cell 2
Cell 3Cell 4

I only want to change the column names if the column names contain a period. How do I go about this?

This is a snippet of my code

li = []
for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    if df.loc[:,df.columns.str.contains('.')].any() == True:
    df.rename(columns = {'First.Name':'First Name', 'Last.Name':'Last Name'})
    li.append(df)

The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花开雨落又逢春i 2025-01-23 20:17:58

您不需要检查 .

df.columns = df.columns.str.replace("."," ", regex=False)

You don't need to check for ..

df.columns = df.columns.str.replace("."," ", regex=False)
彼岸花似海 2025-01-23 20:17:58

我会做这样的事情:

dot_columns = [x for x in df.columns if '.' in x]
df = df.rename(columns={x: x.replace('.', ' ') for x in dot_columns})

让我知道这是否适合你。

I'd do something like this:

dot_columns = [x for x in df.columns if '.' in x]
df = df.rename(columns={x: x.replace('.', ' ') for x in dot_columns})

Let me know if that works for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文