小编use*_*665的帖子

如何将pandas value_counts()合并到dataframe或使用它来对数据帧进行子集化

我使用pandas df.value_counts()来查找特定品牌的出现次数.我想在初始数据框中将这些值计数与各自的品牌合并.

 df has many columns including one named 'brands'
 brands = df.brands.value_counts()

 brand1   143
 brand2   21
 brand3   101
 etc.
Run Code Online (Sandbox Code Playgroud)

如何将值计数与原始数据框合并,以便每个品牌的相应计数位于新列中,例如"brand_count"?

是否可以为这些列分配标题; 名称函数不适用于系列,我无法将其转换为数据帧,可能以这种方式合并数据.但是,value_counts输出一系列dtype int64(品牌名称应该是类型字符串),这意味着我不能执行以下操作:

 df2 = pd.DataFrame({'brands': list(brands_all[0]), "brand_count":
 list(brands_all[1])})
 (merge with df)
Run Code Online (Sandbox Code Playgroud)

最终,我想得到这个:

 col1  col2  col3  brands  brand_count ... col150
                   A        30
                   C        140
                   A        30
                   B        111 
Run Code Online (Sandbox Code Playgroud)

python pandas

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

将txt文件解析为字典以写入csv文件

Eprime输出一个.txt文件,如下所示:

*** Header Start ***
VersionPersist: 1
LevelName: Session
Subject: 7
Session: 1
RandomSeed: -1983293234
Group: 1
Display.RefreshRate: 59.654
*** Header End ***
    Level: 2
    *** LogFrame Start ***
    MeansEffectBias: 7
    Procedure: trialProc
    itemID: 7
    bias1Answer: 1
    *** LogFrame End ***
    Level: 2
    *** LogFrame Start ***
    MeansEffectBias: 2
    Procedure: trialProc
    itemID: 2
    bias1Answer: 0

我想解析它并将其写入.csv文件,但删除了多行.

我试图创建一个字典,将冒号前面的文本作为键,然后将文本作为值:

 {subject: [7, 7], bias1Answer : [1, 0], itemID: [7, 2]} 
def load_data(filename):
    data = {}
    eprime = open(filename, 'r')
    for line in eprime: …

python csv file-io

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

从pandas中的文本中删除unicode

对于一个字符串,下面的代码删除unicode字符和新行/回车:

t = "We've\xe5\xcabeen invited to attend TEDxTeen, an independently organized TED event focused on encouraging youth to find \x89\xdb\xcfsimply irresistible\x89\xdb\x9d solutions to the complex issues we face every day.,"

t2 = t.decode('unicode_escape').encode('ascii', 'ignore').strip()
import sys
sys.stdout.write(t2.strip('\n\r'))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在pandas中编写一个函数来将它应用于列的每个单元格时,它会因为属性错误而失败,或者我收到一条警告,表示正在尝试在DataFrame的一个切片副本上设置一个值

def clean_text(row):
    row= row["text"].decode('unicode_escape').encode('ascii', 'ignore')#.strip()
    import sys
    sys.stdout.write(row.strip('\n\r'))
    return row
Run Code Online (Sandbox Code Playgroud)

应用于我的数据框:

df["text"] = df.apply(clean_text, axis=1)
Run Code Online (Sandbox Code Playgroud)

如何将此代码应用于系列的每个元素?

python unicode pandas

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

标签 统计

python ×3

pandas ×2

csv ×1

file-io ×1

unicode ×1