我有这个大型数据帧我已经导入到熊猫中,我想通过过滤器将其砍掉.这是我的基本示例代码:
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,那么我们想要从数据帧中取消这些值.谢谢
我有一个 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)
有人可以帮我完成这个吗?我真的很难受。谢谢!
我有一个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)但是也没用.谢谢
我有一本字典和一个字:
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处停止这些值吗?
我在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整个表中加载的数据将被擦除,并且仅包含新数据。由于数据位于不同的分区日期,是否不应该保留这些数据?知道为什么会发生这种情况,或者我缺少什么吗?