文本分隔符在数据帧中移动值



我有一个类似下面data_df示例的数据帧,我通过从csv中读取数据来创建它,代码如下。我遇到的问题是,某些列中的一些值正在向右移动。例如,第二个记录值从名称列开始向右移动一列。我想可能是那张唱片的名字中有一个"\"导致了这种转变。有人知道如何解决这个问题吗?我可以在read_csv中做些什么来解决这个问题?

代码:

data_df = pd.read_csv(filepath)
with pd.option_context('display.max_rows', None, 'display.max_columns', None):
print(data_df[:5])

输出:

Unnamed: 0  call_history_id                            calllog_id  
0       16358       1210746736  ca58d850-6fe6-4673-a049-ea4a2d8d7ecf   
1       16361       1210976828  c005329b-955d-4d88-98a5-1c47e6a1cb80   
2       16402       1217791595  050e9b83-54c2-4c87-abdd-32225c0d3189   
3       16471       1228495414  45705ed1-a8e2-4a15-8941-5b0a40b7d409   
4       27906       1245173592  04e56818-04a0-4704-ac86-31c31dac2370   
call_id  connection_id  pbx_name    pbx_id  extension_number  
0  1.509170e+12   1.509170e+12  sales8x8  sales8x8               595   
1  1.509170e+12   1.509170e+12  sales8x8  sales8x8               595   
2  1.509170e+12   1.509170e+12  sales8x8  sales8x8               595   
3  1.509170e+12   1.509170e+12  sales8x8  sales8x8               595   
4  1.509170e+12   1.509170e+12  sales8x8  sales8x8               595   
extension_id   customer_id      address                 name  
0          595  2.525100e+29  14086694428           Sun Basket   
1          595  2.525100e+29  13214371589               PEREZ   
2          595  2.525100e+29  14088566290          14088566290   
3          595  2.525100e+29   8059316676              Dialing   
4          595  2.525100e+29  12028071151  Implementation Team   
start_timestamp     direction call_internal call_missed duration  
0    1/8/18 19:49             I             0           0     4414   
1           BRYAN  1/8/18 20:09             I           0        0   
2    1/9/18 20:31             I             0           0    14766   
3   1/11/18 17:16             I             0           0     1686   
4   1/15/18 22:55             I             0           0     3491   
device_model   group_call group_name group_number           device_id  
0  mediaserver            0         N           N  MasterSlaveService   
1         8300  mediaserver          0           N                  N   
2  mediaserver            0         N           N  MasterSlaveService   
3  mediaserver            0         N           N  MasterSlaveService   
4  mediaserver            0         N           N  MasterSlaveService   
history_event_state   created_time   updated_time    group_type  
0                   A   1/8/18 19:49   1/8/18 19:49            N  
1  MasterSlaveService              A   1/8/18 20:09  1/8/18 20:09  
2                   A   1/9/18 20:31   1/9/18 20:31            N  
3                   A  1/11/18 17:16  1/11/18 17:16            N  
4                   A  1/15/18 22:55  1/15/18 22:55            N  

是一个转义字符。由于我认为文件中的值没有用引号括起来,所以被放在逗号之前,这样您就可以将PEREZ, BRYAN视为一个值。

尝试将\传递给pd.read_csvescapechar选项,这应该会解决它,例如pd.read_csv(filename, escapechar="\")

最新更新