小编sta*_*n12的帖子

如何在python中为pandas创建一个"not"过滤器

我有这个大型数据帧我已经导入到熊猫中,我想通过过滤器将其砍掉.这是我的基本示例代码:

import pandas as pd
import numpy as np
from pandas import Series, DataFrame

df = DataFrame({'A':[12345,0,3005,0,0,16455,16454,10694,3005],'B':[0,0,0,1,2,4,3,5,6]})

df2= df[df["A"].map(lambda x: x > 0) & (df["B"] > 0)]
Run Code Online (Sandbox Code Playgroud)

基本上这显示了底部的4个结果,这是半正确的.但我需要显示一切但这些结果.基本上,我正在寻找一种方法来使用这个过滤器,但如果可能的话,在"非"版本中.因此,如果列A大于0且列B大于0,那么我们想要从数据帧中取消这些值.谢谢

python python-2.7 pandas

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

将值映射到熊猫列表中的每个项目

我有一个 Pandas 数据框列,其中包含如下名称列表:

Names
Roger Williams, Anne Graham
Joe Smoe, Elliot Ezekiel
Todd Roger 
Run Code Online (Sandbox Code Playgroud)

还有一个带有 user_ids 的字典:

map = {Roger Williams: 1234, Anne Graham: 4892, Joe Smoe: 898, Elliot Ezekiel: 8458, Todd Roger: 856}

我需要使用 pandas .map 函数将列表中的每个名称与 user_id 进行映射,如下所示:

Names                           user_id
Roger Williams, Anne Graham     1234, 4892
Joe Smoe, Elliot Ezekiel        898, 8458
Todd Roger                      856
Run Code Online (Sandbox Code Playgroud)

有人可以帮我完成这个吗?我真的很难受。谢谢!

python python-2.7 python-3.x pandas

6
推荐指数
2
解决办法
5458
查看次数

如何将单个元素和元组压缩成一个元组?

我有一个url字典和元组:

url = {'url': 'https://test.com'}
expected = (0, "Test")
Run Code Online (Sandbox Code Playgroud)

我需要将两个对象压缩成1个元组,这样我就可以将它传递给pytest parametrize:

({'url': 'https://test.com'}, 0, "Test")
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试使用时,我的输出zip(url, expected)给了我奇怪的输出,如:

('url', 0)
Run Code Online (Sandbox Code Playgroud)

有人可以建议我怎么做吗?我也尝试过使用zip(url, *expected)但是也没用.谢谢

python tuples python-2.7 python-3.x

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

使用 - =时,字典值未按预期更新

我有一本字典和一个字:

check = {'a': 3, 'e': 1, 'p': 2, 'r': 1, 'u': 1, 't': 1}
word = 'rapturerererer'
Run Code Online (Sandbox Code Playgroud)

如果所有来信word都在,我打算进行测试check.所以我需要保持所有用完的字母的运行计数,并检查最后是否有任何负面信息.

我有代码,但它总是将值限制在0并且永远不会返回负值:

for letter in word:
    if check.get(letter):
        check[letter] -= 1
print(check)

{'a': 2, 'p': 1, 'r': 0, 'e': 0, 't': 0, 'u': 0}
Run Code Online (Sandbox Code Playgroud)

我期待的是这个:

{'a': 2, 'p': 1, 'r': -5, 'e': -4, 't': 0, 'u': 0}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么它在0处停止这些值吗?

python string counter dictionary python-2.7

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

Google BigQuery WRITE_TRUNCATE删除所有数据

我在BQ中有一个表设置,如果我exists在某个日期分区上写入数据,则希望它覆盖它。我已经将job_config设置为使用WRITE_TRUNCATE。

#file_obj = Some ndjson StringIO file like obj

job_config = bigquery.QueryJobConfig()
# Set configuration.query.destinationTable
dest_dataset = 'test'
dest_table_name = 'sales_data'
destination_dataset = client.dataset(dest_dataset)
destination_table = destination_dataset.table(dest_table_name)
job_config.destination = destination_table

# Set configuration.query.writeDisposition & SourceFormat
job_config.write_disposition = 'WRITE_TRUNCATE'
job_config.source_format = bigquery.SourceFormat.NEWLINE_DELIMITED_JSON

# Set partitioning
time_partitioning = bigquery.table.TimePartitioning(
    bigquery.table.TimePartitioningType.DAY, 'date'
)
job_config.time_partitioning = time_partitioning

# Start the load job
job = client.load_table_from_file(
        file_obj, destination_table,
        job_config=job_config
)
# Wait for the job to finish
job.result()
Run Code Online (Sandbox Code Playgroud)

但是,我注意到当回填数据时,即使日期分区不同,它也始终会覆盖表中的所有数据。例如,如果我的表中有数据,20190101-20190201而我从20190202-Present整个表中加载的数据将被擦除,并且仅包含新数据。由于数据位于不同的分区日期,是否不应该保留这些数据?知道为什么会发生这种情况,或者我缺少什么吗?

python python-3.x google-bigquery

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