我想将字符串的字符从小写更改为大写.
我的代码如下,我的代码输出是a; 你能告诉我我错在哪里并解释原因吗?提前致谢
test = "AltERNating"
def to_alternating_case(string):
words = list(string)
for word in words:
if word.isupper() == True:
return word.lower()
else:
return word.upper()
print to_alternating_case(test)
Run Code Online (Sandbox Code Playgroud) 我试图以特定的方式命令字符串的单词:在我的代码下面输出是"MNWdeorwy"但我希望它是"deMNorWwy"(所以我需要保持字母顺序,尽管是上o小写)你能帮我理解我错在哪里,为什么?谢谢
wrd = "MyNewWord"
def order_word(s):
if s == "":
return "Invalid String!"
else:
c = sorted(s)
d = ''.join(sorted(c))
return d
print order_word(wrd)
Run Code Online (Sandbox Code Playgroud)
我想确切地说我的问题与以下内容不同:如何在Python中按字母顺序对字符串中的字母进行排序:实际上,链接中给出的答案不考虑字符串中大写字母和小写字母之间的区别.
编辑:这个问题不是pandas数据框的克隆,用列的平均值替换nan值,因为我想用列的平均值而不是数据框值的平均值替换每列的值。
题
我有一个train包含一百列的Pandas 数据框 ( ),我必须对其应用机器学习技术。
通常我手工制作特征工程,但在这种情况下,我有很多列要处理。
我想构建一个 Python 函数:
1)找到NaN每列中的值(我想过df.isnull().any())
2) 对于每个NaN值,将其替换为找到 NaN 值的列的平均值。
我的想法是这样的:
def replace(value):
for value in train:
if train['value'].isnull():
train['value'] = train['value'].fillna(train['value'].mean())
train = train.apply(replace,axis=1)
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
3063 try:
-> 3064 return self._engine.get_loc(key)
3065 except KeyError:
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()
KeyError: 'value' …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个脚本,将每天上午 8:00 起所有 Outlook 发送的项目转发到专用收件箱。
该邮件必须保存在 Outlook 的已发送邮件文件夹中。
目前我拥有今天的所有电子邮件,但脚本的转发部分不起作用(我没有任何错误消息)
编辑 1:感谢吉米的限制想法!
import win32com.client as win32
outlook = win32.Dispatch("Outlook.Application").GetNamespace("MAPI")
outbox = outlook.GetDefaultFolder(6)
messages = messages = outbox.Items.restrict("[SentOn] > '5/31/2017 08:00 AM'")
for message in messages:
NewMsg = message.Forward()
NewMsg.To = "mail@mail.com"
Run Code Online (Sandbox Code Playgroud)