小编pam*_*pam的帖子

从pandas输出中删除name,dtype

我从pandas函数输出这样的文件.

Series([], name: column, dtype: object)
311     race
317     gender
Name: column, dtype: object
Run Code Online (Sandbox Code Playgroud)

我试图只用第二列得到一个输出,即

race
gender
Run Code Online (Sandbox Code Playgroud)

删除顶行和底行,第一列.我怎么做?

python python-2.7 pandas

19
推荐指数
2
解决办法
2万
查看次数

Bin值基于带有pandas的范围

我在文件夹中有多个CSV文件,其值如下:

GroupID.csv是文件名.有这样的多个文件,但值范围在同一XML文件中定义.我正在尝试将它们分组我该怎么做?

更新1:根据BobHaffner的评论,我已经做到了

import pandas as pd 
import glob path =r'path/to/files' 
allFiles = glob.glob(path + "/*.csv")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
    df = pd.read_csv(file_,index_col=None, header=None)
    df['file'] = os.path.basename('path/to/files/'+file_)
    list_.append(df)
frame = pd.concat(list_)
print frame
Run Code Online (Sandbox Code Playgroud)

得到这样的东西:

我需要根据XML文件中的bin对值进行分组.我真的很感激任何帮助.

python csv numpy pandas

17
推荐指数
1
解决办法
2万
查看次数

ClassNotFoundException:org.apache.hive.jdbc.HiveDriver

我是Java的新手.我正在尝试通过java连接到hive服务器并使用来自https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-JDBC的示例代码

import java.sql.SQLException;

public class HiveJdbcClient {
    //private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    public static void main(String[] args) throws SQLException {
        try {
            Class.forName("org.apache.hive.jdbc.HiveDriver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.exit(1);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我将所有的罐子放在所需的位置并更新了pom文件,但是得到了

java.lang.ClassNotFoundException: org.apache.hive.jdbc.HiveDriver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at HiveJdbcClient.main(HiveJdbcClient.java:7)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Run Code Online (Sandbox Code Playgroud)

我搜索了一段时间的解决方案,但无法解决它.请让我知道如何解决这个问题.

java hadoop hive jdbc maven

10
推荐指数
1
解决办法
2万
查看次数

Python:将XML转换为CSV文件

我有一个像这样的XML文件:

<hierachy>
    <att>
        <Order>1</Order>
        <attval>Data</attval>
        <children>
            <att>
                <Order>1</Order>
                <attval>Studyval</attval>
            </att>
            <att>
                <Order>2</Order>
                <attval>Site</attval>
            </att>
        </children>
    </att>
    <att>
        <Order>2</Order>
        <attval>Info</attval>
        <children>
            <att>
                <Order>1</Order>
                <attval>age</attval>
            </att>
            <att>
                <Order>2</Order>
                <attval>gender</attval>
            </att>
        </children>
    </att>
</hierachy>
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其转换为CSV文件,如下所示:

Data,Studyval
Date,Site
Info,age
Info,gender
Run Code Online (Sandbox Code Playgroud)

我的问题是,父名和子名都是相同的 - 'att'和'attval'.我如何告诉Python区分两者并给我输出?

我试过这个:

import xml.etree.cElementTree as ET

tree = ET.parse('input.xml')
rebase = tree.getroot()

list = []

for att in rebase.findall('att'):
        name = att.find('attval').text
        for each_att in att.findall('attval'):
            try:
                val = att.find('attval').text
                print name, val
            except AttributeError:
                print name
Run Code Online (Sandbox Code Playgroud)

它打印了两次相同的东西.

python xml csv xpath elementtree

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

使用pandas cut对值进行分组

我正在尝试将几个csv文件中的值分组到XML文件(groups.xml)中的bin中.我有以下代码在某种程度上工作,但没有给出我期望的:

import os, sys
import glob
import pandas as pd
import xml.etree.cElementTree as ET

def xml_parse():
    try:
        os.chdir("path/to/files")
        filename = [file1 for file1 in glob.glob("*.csv")]
        filename = [i.split('.', 1)[0] for i in filename]
        #filename = '\n'.join(filename)
        os.chdir('..')
        output = []
        doc = ET.parse("groups.xml").getroot()
        for root_ele in doc.findall('Groups'):
            tag_ele = root_ele.find('GroupID').text
            for name in filename:
                if name == tag_ele.lower():
                    for root_ele1 in root_ele.findall('groupname'):
                        displayname = root_ele1.find('Name').text
                        minval = root_ele1.find('min').text
                        mininc = root_ele1.find('minInc').text
                        maxvalue = root_ele1.find('max') …
Run Code Online (Sandbox Code Playgroud)

python csv grouping numpy pandas

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

python count csv列中唯一元素的数量

我正在尝试使用Python获取csv列中唯一项的计数.

示例CSV文件(没有标题):

AB,asd
AB,poi
AB,asd
BG,put
BG,asd
Run Code Online (Sandbox Code Playgroud)

到目前为止我已经尝试过了.

import csv
from collections import defaultdict, Counter

input_file = open('Results/1_sample.csv')
csv_reader = csv.reader(input_file, delimiter=',')

data = defaultdict(list)
for row in csv_reader:
    data[row[0]].append(row[1])
for k, v in data.items():
    print k
    print Counter(v)
Run Code Online (Sandbox Code Playgroud)

这提供了以下格式的输出:

AB
Counter({'asd': 2, 'poi': 1})
BG
Counter({'asd': 1, 'put': 1})
Run Code Online (Sandbox Code Playgroud)

但我希望我的输出如下:

AB:2
BG:2
total_unique_count:3 #unique count of column[1], irrespective of the data in column[0]
Run Code Online (Sandbox Code Playgroud)

python csv counter unique pandas

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

pandas groupby一次用于多个数据帧/文件

我有多个巨大的tsv文件,我正在尝试使用pandas进行处理.我想按'col3'和'col5'进行分组.我试过这个:

import pandas as pd
df = pd.read_csv('filename.txt', sep = "\t")
g2 = df.drop_duplicates(['col3', 'col5'])
g3 = g2.groupby(['col3', 'col5']).size().sum(level=0)
print g3
Run Code Online (Sandbox Code Playgroud)

它到目前为止工作正常,打印输出如下:

yes 2
no  2
Run Code Online (Sandbox Code Playgroud)

我希望能够聚合多个文件的输出,即能够同时按所有文件中的这两列进行分组,并打印一个常见输出,其总出现次数为"是"或"否"或者那个属性可能是什么.换句话说,我现在想一次在多个文件上使用groupby.如果文件没有这些列中的一个,则应该跳过该文件并转到下一个文件.

python csv group-by pandas

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

标签 统计

python ×6

csv ×5

pandas ×5

numpy ×2

counter ×1

elementtree ×1

group-by ×1

grouping ×1

hadoop ×1

hive ×1

java ×1

jdbc ×1

maven ×1

python-2.7 ×1

unique ×1

xml ×1

xpath ×1