繁体   English   中英

如何从python中的csv文件中提取字符串

[英]How to extract the strings from csv file in python

我正在通过读取我的串口来保存一个 csv 文件。 我的 csv 文件的几行:

*
20/01/20,10:13:59,"11   22
"
20/01/20,10:13:59,"11   22
"
20/01/20,10:13:59,"11   22
"
*

我想将列表中的日期、时间和我的 2 个数据全部作为 a[0] 作为日期,a[1] 作为时间,a[1]=data1,a[3]=data2

但是我无法将这 2 个数据分开,它们位于同一列中,这是代码片段

from pandas import read_csv

df = read_csv('test_csvtry1.csv')

输出是:

数据帧 7x3,但我希望它是 7x4

"

1   20/01/20    10:13:59    "11 22
"

2   20/01/20    10:13:59    "11 22
"

3   20/01/20    10:13:59    "11 22
"

4   20/01/20    10:13:59    "11 22
"

5   20/01/20    10:13:59    "11 22
"

6   20/01/20    10:13:59    "11 22
"

请有人让我知道如何做到这一点?

为什么要用熊猫来做这么基本的事情?

import csv

with open("date_time_data.csv", 'r') as f:
    f_csv = csv.reader(f)
    for line in f_csv:
        a0, a1, a2 = line
        print(a0,a1,a2)

输出

20/01/20 10:13:59 11   22

20/01/20 10:13:59 11   22

20/01/20 10:13:59 11   22

您需要使用 data1 和 data2 之间的分隔符拆分数据部分。

在这种情况下,分隔符是空格。

让您将数据连接到某个变量中并执行以下拆分操作。

splitdata = data.split(" ")
data1, data2 = splitdata[0], splitdata[1]

在阅读 CSV 时,您将始终将其放在同一列中。 您需要手动拆分并存储在不同的列中。

在数据框中创建一个空列。

df['data2'] = np.nan

现在,

  1. 迭代您的数据框并选择数据值。
  2. 使用上述方法拆分数据值并将当前数据值替换为 data1。
  3. 将 data2 存储到新创建的列中。

希望这可以解决您的问题。

for row in df.itertuples():
    data = row.data
    splitdata = data.split(" ")
    data1, data2 = splitdata[0], splitdata[1]
    row.data = data1
    row.data2 = data2

要在 read_csv 函数本身中拆分 data1 和 data2,您可以执行以下操作。

from pandas import read_csv

df = read_csv('test_csvtry1.csv', header=None, delim_whitespace=True)

这将为您提供您正在寻找的 7x4 数据框。

在读取 csv 文件分隔符时使用多个分隔符 ["] 、 [,] 和 [ ]

df = pd.read_csv("test_csvtry1.csv" , sep='"|,| ', header = None)

df

0   0   20/01/20    10:13:59    NaN   11    22
1   1   20/01/20    10:13:59    NaN   11    22
2   2   20/01/20    10:13:59    NaN   11    22

删除具有 Nan 值的列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM