【问题标题】:How do I use regex within a certain cell in a csv to edit?如何在 csv 的某个单元格内使用正则表达式进行编辑?
【发布时间】:2022-11-16 17:02:51
【问题描述】:

我有一个结构如下的 CSV:

测试 CSV:

Column A Column B
abc-dfcv rebtgsergbsedrfgesrg
water rdfe egreg
oluiuilegregreg
def fefd rtjtyujdtgfhndgfhjfh
water edgregerg

需要的结果:

Column A Column B
abc-dfcv water rdfe egreg
def fefd water edgregerg

可以看出,在 B 列的每个单元格中都有多行。我需要对其进行编辑,以便只有以“水”开头的行保留在单元格中,其余行被省略。必须对 B 列中的所有单元格执行此操作。

我所做的正则表达式声明是re.findall("^water'.*")

我试图直接应用正则表达式,但它在单元格内一行的末尾停止并出错。

沿着这些思路思考一些事情,但对正则表达式输入应该是什么一无所知。

df = pd.read_csv("MyFile.csv")

for p in range(len(df.index)):
   df._set_value(p, "SCHEDULES", str(re.findall("^water'.*", ??????????????? )))
df.to_csv("Nexpose_Schedules.csv", index=False)

【问题讨论】:

  • 请显示实际的 CSV 文本文件,而不是某种我们必须猜测实际数据是什么样子的星体投影。

标签: python pandas regex csv


【解决方案1】:

你可以这样做:

df = pd.read_csv('MyFile.csv')
df_new = df.loc[df['Column B'].str.contains(r'water', case=False)]

【讨论】:

    【解决方案2】:

    您可以使用函数“startswith”而不是正则表达式,答案如下:

    result = df[df["Column B"].str.startswith("water")]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多