小编mar*_*rie的帖子

Pandas Dataframe 性能与列表性能

我正在比较两个数据帧以确定 df1 中的行是否以 df2 中的任何行开头。df1 的数量为一千个条目,df2 的数量为数百万个。

这可以完成工作,但速度相当慢。

df1['name'].map(lambda x: any(df2['name'].str.startswith(x)))
Run Code Online (Sandbox Code Playgroud)

在 df1(10 项)的子集上运行时,结果如下:

35243     True
39980    False
40641    False
45974    False
53788    False
59895     True
61856    False
81083     True
83054     True
87717    False
Name: name, dtype: bool
Time: 57.8873581886 secs
Run Code Online (Sandbox Code Playgroud)

当我将 df2 转换为列表时,它运行得更快:

df2_list = df2['name'].tolist()

df1['name'].map(lambda x: any(item.startswith(x + ' ') for item in df2_list))

35243     True
39980    False
40641    False
45974    False
53788    False
59895     True
61856    False
81083     True
83054     True
87717    False
Name: name, dtype: …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

按日和小时分组后重命名熊猫列

我有一个带有datetime列的pandas数据框。我使用以下方法按天分组,然后按小时分组:

df.groupby([df['date'].map(lambda t: t.day), df['date'].map(lambda t: t.hour)]).count()
Run Code Online (Sandbox Code Playgroud)

不幸的是,这给我留下了一个双重索引,两个索引都称为日期。第一个日期是一个月中的一天,第二个日期是小时,字节是该小时中的项目计数:

在此处输入图片说明

我正在尝试利用这些日期列,但不能。我尝试重置索引,但收到此错误:

ValueError: cannot insert date, already exists
Run Code Online (Sandbox Code Playgroud)

我也无法重命名列,因为“日期”没有出现在列列表中:

grouped_df.columns
>> Index([u'bytes'], dtype='object')
Run Code Online (Sandbox Code Playgroud)

最终,我试图找到每天每一小时的商品数。如何重命名重复的日期列?我是否应该使用其他方法对数据帧进行分组以避免这种困境?

python datetime pandas

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

Python syntaxerror:行继续符后的意外字符

我刚刚开始python,所以我很可能只是在做一些愚蠢的事情.我正在从表中读取数据,需要将它们放入txt文件中的列中.我无法说服我的代码创建一个新行.

这是我的代码 -

file = open("test_m.rdb")
table = open('table.txt', 'w+')

trash = file.readline()

trash = file.readline()

data = file.readline()
i = data.split()
flux = i[2]
observed = i[4]
table.write(flux + " " + observed,)

while 1:
    line = file.readline()
    i = line.split()
    try:
        flux = i[2]
        observed = i[4]
    except IndexError:
        break
    table.write(\nflux + " " + observed)
table.close()
Run Code Online (Sandbox Code Playgroud)

错误如下 -

File "PlotRdbFile.py", line 24
    table.write(\nflux + " " + observed)
                                   ^
SyntaxError: unexpected character after line continuation character
Run Code Online (Sandbox Code Playgroud)

提前谢谢你发现我的错误.

python newline syntax-error

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

标签 统计

python ×3

pandas ×2

datetime ×1

newline ×1

syntax-error ×1