使用python从大型文本文件中使用特殊字符的特定字符串中提取数字

使用python从大型文本文件中使用特殊字符的特定字符串中提取数字,python,pandas,csv,Python,Pandas,Csv,我有大数据文件(CSV类型),我用熊猫阅读。每个文件都有一个信息列,其中有许多名称和数字,以;分隔;。下面是此列的外观: 0 Acid: 74.1 [°C];LeakRate [Bar/Min]: 103 ;P: ... 1 Acid: 73.9 [°C]; LeakRate [µBar/Min]: 371 ; ... 2 Acid: 73.9 [°C]; LeakRate [µBar/Min]: 107 ; ... 3 Acid: 73.9 [°C]; Le

我有大数据文件(CSV类型),我用熊猫阅读。每个文件都有一个信息列,其中有许多名称和数字,以;分隔;。下面是此列的外观:

0    Acid: 74.1 [°C];LeakRate [Bar/Min]:  103 ;P: ...
1     Acid: 73.9 [°C]; LeakRate [µBar/Min]:  371 ; ...
2     Acid: 73.9 [°C]; LeakRate [µBar/Min]:  107 ; ...
3     Acid: 73.9 [°C]; LeakRate [µBar/Min]:  371 ; ...
4     Acid: 74.0 [°C]; LeakRate [µBar/Min]:  107 ; ...
Name: Information, dtype: object
我使用下面的代码行使用字符串拆分进行分离,然后得到例如泄漏率[µBar/Min]和相应的测量值,即上面零索引中的103

    df["Information"]str.split(";", expand=True)[1].str.split(":", expand=True)[1]
不幸的是,生成的数据文件并不总是相同的,因此位置也不总是相同的。因此,我希望找到具有特殊字符的特定字符串,例如
泄漏率[µBar/Min]
,然后获得相应的数字,以便能够绘制它们以供进一步分析

有人知道一个简单的方法吗?我是python新手,非常感谢您的帮助

谢谢


Eala

听起来您好像想事先计算出列索引

这可以通过以下方式实现:

firstRow=。。。
leakRateCols=[i代表i,枚举中的val(第一行[“信息”].str.split(;”),如果val中的“LeakRate”]
如果len(泄漏率)大于1:
#在此处引发一些错误,因为有多个列具有泄漏率。
leakRateCol=leakRateCols[0]
对于df in…:
... = df[“Information”].str.split(;”[leakRateCol].str.split(:”[1]
不过,您可能需要考虑使用csv库。可能对你有用。

前两个记录中的泄漏率单位不同。它们应该是一样的吗?所有变量和所有记录的单位都应该相同吗?也许你可以在pastebin上发布csv的前几条记录?你可能可以使用我的答案中提供的方法。当然,您需要调整解析csv记录的方式。所有单位都是常量。这是一个打字错误。