我有以下熊猫数据框
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会是这样的:
谢谢
我有以下熊猫数据框:
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 循环(如果可能)
我有下表:
+--------+-------+------+--+
| 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) 我正在尝试使用列联表计算 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中有两个列表:
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 与 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 仍然无法工作。有什么建议吗?
谢谢