我使用pandas作为db替代品,因为我有多个数据库(oracle,mssql等),我无法为SQL等价物创建一系列命令.
我在DataFrame中加载了一些表,其中包含一些列:
YEARMONTH, CLIENTCODE, SIZE, .... etc etc
Run Code Online (Sandbox Code Playgroud)
在SQL中,要计算每年不同客户端的数量,请执行以下操作:
SELECT count(distinct CLIENTCODE) FROM table GROUP BY YEARMONTH;
Run Code Online (Sandbox Code Playgroud)
结果就是
201301 5000
201302 13245
Run Code Online (Sandbox Code Playgroud)
我怎么能在熊猫中做到这一点?
这是我的csv外观,
name, cuisine, review
A, Chinese, this
A, Indian, is
B, Indian, an
B, Indian, example
B, French, thank
C, French, you
Run Code Online (Sandbox Code Playgroud)
我试着计算这种差异菜肴的名称出现次数.这就是我应该得到的
Cuisine, Count
Chinese, 1
Indian, 2
French, 2
Run Code Online (Sandbox Code Playgroud)
但正如你可以看到名称中有重复项,例如B,所以我尝试drop_duplicates但我不能.我用
df.groupby('name')['cuisine'].drop_duplicates()
Run Code Online (Sandbox Code Playgroud)
它说系列groupby对象不能.
不知何故,我需要应用value_counts()来获取烹饪单词的出现次数,但重复的东西是阻碍的.知道如何在熊猫中得到这个吗?谢谢.
我有 2 行的 pandas DataFrame:
+---------+---------+-----------+------------+
| ID| Type| Index| Code|
+---------+---------+-----------+------------+
|111111111| aa| 1| XXX|
|111111111| aa| null| XXX|
Run Code Online (Sandbox Code Playgroud)
如何显示行之间具有不同值的那些列df?(可能有超过 2 行)。
在上面显示的示例中,预期输出为Index,因为第一行等于Index1,第二行等于Indexnull。