小编val*_*zio的帖子

Python:导出pandas数据框时如何在excel中创建多行单元格

我有以下熊猫数据框

df = pd.DataFrame([
    [['First Line', 'Second line']],
    [['First line', 'second line', 'third line']],
    [['first line']]
])
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其导出到 Excel 文件中。但是我希望在每个列表元素之间输入一个换行符,类似于ALT-ENTERExcel。所以最后,excel会是这样的:

在此处输入图片说明

谢谢

python excel pandas

8
推荐指数
1
解决办法
6259
查看次数

Python:Pandas 将每一行连接成一个字符串

我有以下熊猫数据框:

df=pd.DataFrame({0:["a","b","c","d"], 1:["e","f","g",None], 2:["h",None,None,None]})

   0     1     2
0  a     e     h
1  b     f  None
2  c     g  None
3  d  None  None
Run Code Online (Sandbox Code Playgroud)

我喜欢用一列创建一个新的 DataFrame,其中每一行都是一个连接字符串,并带有一个分隔符“,”:

       0
0  a,e,h
1    b,f
2    c,g
3      d
Run Code Online (Sandbox Code Playgroud)

对于单行,我可以使用

df.iloc[0,:].str.cat(sep=",")
Run Code Online (Sandbox Code Playgroud)

但是如何将其应用于整个 DataFrame,而不使用 for 循环(如果可能)

python string concatenation pandas

6
推荐指数
1
解决办法
4239
查看次数

SQL查询以特定顺序发生的事件

我有下表:

+--------+-------+------+--+
| Object | Event | Time |  |
+--------+-------+------+--+
| Obj1   | A     |    1 |  |
| Obj1   | B     |    3 |  |
| Obj2   | A     |    7 |  |
| Obj2   | B     |    4 |  |
+--------+-------+------+--+
Run Code Online (Sandbox Code Playgroud)

我的目标是获取所有同时发生事件A和B的对象,条件是A首先发生(及时)。到目前为止,我只想出查询来查找所有具有A和B的对象,而没有包括时间:

SELECT DISTINCT Object 
FROM
    (SELECT * 
     FROM
         (SELECT * 
          FROM table
          INNER JOIN 
              (SELECT Object Obj 
               FROM table 
               WHERE event LIKE '%A%' AS temp_table) ON table.Object = temp_table.Obj) AS temp_final 
     WHERE event LIKE '%B%') AS …
Run Code Online (Sandbox Code Playgroud)

sql vertica

5
推荐指数
1
解决办法
891
查看次数

Python:Chi 2 测试产生错误结果(chi2_contingency)

我正在尝试使用列联表计算 python 中的卡方值。这是一个例子。

+--------+------+------+
|        | Cat1 | Cat2 |
+--------+------+------+
| Group1 |   80 |  120 |
| Group2 |  420 |  380 |
+--------+------+------+
Run Code Online (Sandbox Code Playgroud)

预期值为:

+--------+------+------+
|        | Cat1 | Cat2 |
+--------+------+------+
| Group1 |  100 |  100 |
| Group2 |  400 |  400 |
+--------+------+------+
Run Code Online (Sandbox Code Playgroud)

如果我手动计算卡方值,我得到 10。但是使用 python 我得到 9.506。我使用以下代码:

import numpy as np
import pandas as pd
from scipy.stats import chi2_contingency
import scipy

# Some fake data.
n = 5  # Number of samples. …
Run Code Online (Sandbox Code Playgroud)

python contingency pandas

4
推荐指数
1
解决办法
1495
查看次数

合并两个列表

我在python中有两个列表:

L1=[[100, 1], [101, 2]]
L2=[[100, 3], [101, 4], [102, 5]]
Run Code Online (Sandbox Code Playgroud)

我想合并他们,所以我得到:

L_merge=[[100, 4], [101, 6], [102, 5]]
Run Code Online (Sandbox Code Playgroud)

重要的是两个列表的大小可能不同.

我试图使用字典但无法弄明白.我很高兴使用numpy,pandas或任何其他工具来获得合并.

python merge

3
推荐指数
1
解决办法
413
查看次数

使用 vertica-python 将 Python pandas 数据帧转换为 vertica 表

我正在使用 python 与 vertica 进行通信。有没有一种优雅的方法来使用 pandas 数据框创建新的 vertica 表。我正在使用vertica-python 0.6.14。我知道的唯一方法是使用 for 循环将数据帧的每一行写入 vertica。此外,在 vertica 中创建表非常痛苦,因为您需要知道每列的数据类型。我想知道在提交 for 循环之前是否有一个简单的解决方案可以处理所有事情。

我尝试使用以下内容:

from sqlalchemy import create_engine
engine = create_engine('vertica+vertica_python://user:pass@host:5433/MYDB')
df.to_sql('mytable', engine)
Run Code Online (Sandbox Code Playgroud)

它创建了一个表,但没有填充它,并且我收到一条错误消息。

我还尝试通过 DSN 安装驱动程序并配置 DSN。然后我用了这一行:

engine = create_engine('vertica+pyodbc://username:password@mydsn')
Run Code Online (Sandbox Code Playgroud)

我可以与 vertica 通信,但 pandas -> vertica 仍然无法工作。有什么建议吗?

谢谢

python vertica pandas

1
推荐指数
1
解决办法
9362
查看次数

标签 统计

python ×5

pandas ×4

vertica ×2

concatenation ×1

contingency ×1

excel ×1

merge ×1

sql ×1

string ×1